#include "enclave_self_test.h"

using namespace std;

EHSM_TEST_VECTOR rsa_crypto_with_pkcs_oaep_test_vectors = {
    {// case1
     {"n", "a8b3b284af8eb50b387034a860f146c4919f318763cd6c5598c8ae4811a1e0abc4c7e0b082d693a5e7fced675cf4668512772c0cbc64a742c6c630f533c8cc72f62ae833c40bf25842e984bb78bdbf97c0107d55bdb662f5c4e0fab9845cb5148ef7392dd3aaff93ae1e6b667bb3d4247616d4f5ba10d4cfd226de88d39f16fb"},
     {"e", "010001"},
     {"d", "53339cfdb79fc8466a655c7316aca85c55fd8f6dd898fdaf119517ef4f52e8fd8e258df93fee180fa0e4ab29693cd83b152a553d4ac4d1812b8b9fa5af0e7f55fe7304df41570926f3311f15c4d65a732c483116ee3d3d2d0af3549ad9bf7cbfb78ad884f84d5beb04724dc7369b31def37d0cf539e9cfcdd3de653729ead5d1"},
     {"p", "d32737e7267ffe1341b2d5c0d150a81b586fb3132bed2f8d5262864a9cb9f30af38be448598d413a172efb802c21acf1c11c520c2f26a471dcad212eac7ca39d"},
     {"q", "cc8853d1d54da630fac004f471f281c7b8982d8224a490edbeb33d3e3d5cc93c4765703d1dd791642f1f116a0dd852be2419b2af72bfe9a030e860b0288b5d77"},
     {"dmp1", "0e12bf1718e9cef5599ba1c3882fe8046a90874eefce8f2ccc20e4f2741fb0a33a3848aec9c9305fbecbd2d76819967d4671acc6431e4037968db37878e695c1"},
     {"dmq1", "95297b0f95a2fa67d00707d609dfd4fc05c89dafc2ef6d6ea55bec771ea333734d9251e79082ecda866efef13c459e1a631386b7e354c899f5f112ca85d71583"},
     {"iqmp", "4f456c502493bdc0ed2ab756a3a6ed4d67352a697d4216e93212b127a63d5411ce6fa98d5dbefd73263e3728142743818166ed7dd63687dd2a8ca1d2f4fbd8e1"},
     {"plaintext", "6628194e12073db03ba94cda9ef9532397d50dba79b987004afefe34"},
     {"ciphertext", "354fe67b4a126d5d35fe36c777791a3f7ba13def484e2d3908aff722fad468fb21696de95d0be911c2d3174f8afcc201035f7b6d8e69402de5451618c21a535fa9d7bfc5b8dd9fc243f8cf927db31322d6e881eaa91a996170e657a05a266426d98c88003f8477c1227094a0d9fa1e8c4024309ce1ecccb5210035d47ac72e8a"}},
    {// case2
     {"n", "01947c7fce90425f47279e70851f25d5e62316fe8a1df19371e3e628e260543e4901ef6081f68c0b8141190d2ae8daba7d1250ec6db636e944ec3722877c7c1d0a67f14b1694c5f0379451a43e49a32dde83670b73da91a1c99bc23b436a60055c610f0baf99c1a079565b95a3f1526632d1d4da60f20eda25e653c4f002766f45"},
     {"e", "010001"},
     {"d", "0823f20fadb5da89088a9d00893e21fa4a1b11fbc93c64a3be0baaea97fb3b93c3ff713704c19c963c1d107aae99054739f79e02e186de86f87a6ddefea6d8ccd1d3c81a47bfa7255be20601a4a4b2f08a167b5e279d715b1b455bdd7eab245941d9768b9acefb3ccda5952da3cee72525b4501663a8ee15c9e992d92462fe39"},
     {"p", "0159dbde04a33ef06fb608b80b190f4d3e22bcc13ac8e4a081033abfa416edb0b338aa08b57309ea5a5240e7dc6e54378c69414c31d97ddb1f406db3769cc41a43"},
     {"q", "012b652f30403b38b40995fd6ff41a1acc8ada70373236b7202d39b2ee30cfb46db09511f6f307cc61cc21606c18a75b8a62f822df031ba0df0dafd5506f568bd7"},
     {"dmp1", "436ef508de736519c2da4c580d98c82cb7452a3fb5efadc3b9c7789a1bc6584f795addbbd32439c74686552ecb6c2c307a4d3af7f539eec157248c7b31f1a255"},
     {"dmq1", "012b15a89f3dfb2b39073e73f02bdd0c1a7b379dd435f05cdde2eff9e462948b7cec62ee9050d5e0816e0785a856b49108dcb75f3683874d1ca6329a19013066ff"},
     {"iqmp", "0270db17d5914b018d76118b24389a7350ec836b0063a21721236fd8edb6d89b51e7eeb87b611b7132cb7ea7356c23151c1e7751507c786d9ee1794170a8c8e8"},
     {"plaintext", "8ff00caa605c702830634d9a6c3d42c652b58cf1d92fec570beee7"},
     {"ciphertext", "0181af8922b9fcb4d79d92ebe19815992fc0c1439d8bcd491398a0f4ad3a329a5bd9385560db532683c8b7da04e4b12aed6aacdf471c34c9cda891addcc2df3456653aa6382e9ae59b54455257eb099d562bbe10453f2b6d13c59c02e10f1f8abb5da0d0570932dacf2d0901db729d0fefcc054e70968ea540c81b04bcaefe720e"}},
    {// case3
     {"n", "02b58fec039a860700a4d7b6462f93e6cdd491161ddd74f4e810b40e3c1652006a5c277b2774c11305a4cbab5a78efa57e17a86df7a3fa36fc4b1d2249f22ec7c2dd6a463232accea906d66ebe80b5704b10729da6f833234abb5efdd4a292cbfad33b4d33fa7a14b8c397b56e3acd21203428b77cdfa33a6da706b3d8b0fc43e9"},
     {"e", "010001"},
     {"d", "15b48a5b5683a94670e23b5718f814fa0e13f85038f50711182cba61510581f3d22c7e232ef937e22e551d68b86e2f8cb1aad8be2e488f5df7efd279e3f568d4eaf36f80cf7141ace60fcc9113fb6c4a841fd50bbc7c512ffcbeff21487aa811eb3ca8c62005346a86de86bfa1d8a948fd3f348c22eaadf333c3ce6ce13208fd"},
     {"p", "01bf01d216d73595cf0270c2beb78d40a0d8447d31da919a983f7eea781b77d85fe371b3e9373e7b69217d3150a02d8958de7fad9d555160958b4454127e0e7eaf"},
     {"q", "018d3399658166db3829816d7b295416759e9c91987f5b2d8aecd63b04b48bd7b2fcf229bb7f8a6dc88ba13dd2e39ad55b6d1a06160708f9700be80b8fd3744ce7"},
     {"dmp1", "06c0a249d20a6f2ee75c88b494d53f6aae99aa427c88c28b163a769445e5f390cf40c274fd6ea6329a5ce7c7ce03a2158396ee2a7845786e09e2885a9728e4e5"},
     {"dmq1", "d1d27c29fedd92d86c348edd0ccbfac14f746e051ce1d1811df35d61f2ee1c97d4bf2804802f6427187ba8e90a8af44243b4079b03445e602e29fa5193e64fe9"},
     {"iqmp", "8cb2f756bd8941b1d3b770e5ad31ee373b28acda69ff9b6f40fe578b9f1afb85836f9627d37acff73c2779e634bb26011c2c8f7f3361ae2a9ea65ed689e3639a"},
     {"plaintext", "087820b569e8fa8d"},
     {"ciphertext", "026a0485d96aebd96b4382085099b962e6a2bdec3d90c8db625e14372de85e2d5b7baab65c8faf91bb5504fb495afce5c988b3f6a52e20e1d6cbd3566c5cd1f2b8318bb542cc0ea25c4aab9932afa20760eaddec784396a07ea0ef24d4e6f4d37e5052a7a31e146aa480a111bbe926401307e00f410033842b6d82fe5ce4dfae80"}},
    {// case4
     {"n", "051240b6cc0004fa48d0134671c078c7c8dec3b3e2f25bc2564467339db38853d06b85eea5b2de353bff42ac2e46bc97fae6ac9618da9537a5c8f553c1e357625991d6108dcd7885fb3a25413f53efcad948cb35cd9b9ae9c1c67626d113d57dde4c5bea76bb5bb7de96c00d07372e9685a6d75cf9d239fa148d70931b5f3fb039"},
     {"e", "010001"},
     {"d", "0411ffca3b7ca5e9e9be7fe38a85105e353896db05c5796aecd2a725161eb3651c8629a9b862b904d7b0c7b37f8cb5a1c2b54001018a00a1eb2cafe4ee4e9492c348bc2bedab4b9ebbf064e8eff322b9009f8eec653905f40df88a3cdc49d4567f75627d41aca624129b46a0b7c698e5e65f2b7ba102c749a10135b6540d0401"},
     {"p", "027458c19ec1636919e736c9af25d609a51b8f561d19c6bf6943dd1ee1ab8a4a3f232100bd40b88decc6ba235548b6ef792a11c9de823d0a7922c7095b6eba5701"},
     {"q", "0210ee9b33ab61716e27d251bd465f4b35a1a232e2da00901c294bf22350ce490d099f642b5375612db63ba1f20386492bf04d34b3c22bceb909d13441b53b5139"},
     {"dmp1", "39fa028b826e88c1121b750a8b242fa9a35c5b66bdfd1fa637d3cc48a84a4f457a194e7727e49f7bcc6e5a5a412657fc470c7322ebc37416ef458c307a8c0901"},
     {"dmq1", "015d99a84195943979fa9e1be2c3c1b69f432f46fd03e47d5befbbbfd6b1d1371d83efb330a3e020942b2fed115e5d02be24fd92c9019d1cecd6dd4cf1e54cc899"},
     {"iqmp", "01f0b7015170b3f5e42223ba30301c41a6d87cbb70e30cb7d3c67d25473db1f6cbf03e3f9126e3e97968279a865b2c2b426524cfc52a683d31ed30eb984be412ba"},
     {"plaintext", "4a86609534ee434a6cbca3f7e962e76d455e3264c19f605f6e5ff6137c65c56d7fb344cd52bc93374f3d166c9f0c6f9c506bad19330972d2"},
     {"ciphertext", "04cce19614845e094152a3fe18e54e3330c44e5efbc64ae16886cb1869014cc5781b1f8f9e045384d0112a135ca0d12e9c88a8e4063416deaae3844f60d6e96fe155145f4525b9a34431ca3766180f70e15a5e5d8e8b1a516ff870609f13f896935ced188279a58ed13d07114277d75c6568607e0ab092fd803a223e4a8ee0b1a8"}},
};

/**
 * @param Msg message that requires a signature
 * @param n Parameter used to generate the public key
 * @param e Parameter used to generate the public key
 * @param d Parameter used to generate the private key
 * @param S The result of signing the message
 * @param paddingmode Padding mode to use
 * @param digestmode Digest mode to use
 */
EHSM_TEST_VECTOR rsa_sign_verify_with_PKCS1_test_vectors = {
    {// mod = 2048 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 1
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "79bcffbfd6bcf638934b38e47a1b821dc97cafe1da757f820313989ebc01ca52ff5997abf5baf35dce9b48b8f0debdd755a8b81b2e71a1d8cd57ea4dc1b84cda43ff536dd1be1c3e18fe5ebc17d3a7c68233e81f6407341c0983c5a01bb3404a0b5739edb2f1fa41391c80d8361fc75317c248d5c461bfb8803e317f101b2e0c"},
     {"S", "5cbc1d2c696e7c5c0a538db35a793959008564c43d9aa8ed20816b66ef77124eca7584631308d0fd7383be62eaf799b5e67e8874cc9d88d507e1bd4fb9fd7517adebe5d583b075040ce3db2affcf77ee0162be2e575413f455841cb6ea4a30595daee45e3042b0b9d8f9ee700df3f1898219777c21ef3695af95628ae64260dd2cb7ee6270fb06f52ea1aea72e1a26a26f2e7cee560ae0cb8be323113c3f19c97cb5a3e61b998a68432aa2d1f8c8c00ac92b0f35344710ae1d6d79f379fbb3dba41b46b9c814eb3a25ca64a3ff86af613d163f941a897676652e7c3f6769fd964b862dc58cc2e652d0a404e94853fb83937c862c1df2df9fd297f058bf660d15"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 2048 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 2
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "f96c50dfae376c4f4dd0849edded04d74b995ef3bc35fefc22bc7f730d4b1ff0c5e070089561517369e11d6e9c20225f0b5055b86e1f431de8f14bc9dc6d0b2e033c18dbbb0df2a3a2dd37fc647516a5d134078c330eb9eeded54cc008b7c14edb09af22c9433727204b390edef6c8f1c6ccdc36b30b47b72defeb1f3a312997"},
     {"S", "5ae33e70f8bc701a97ff7391dde8a1b498177330d4ea94c98f4d109dcce74588e9baeb6eec783d68c10be45a9a895253d24b289087c2a901e213a21c88e7987c4a62a5f3b6b6e7c28bd1adb12df175dbdec22f48e45d441cccb1781878e5e531d726e3d8658da8727a2283dd9f7e78a8b46e5653128d95254978f52099e6cb230cc449893041fef63a48e499038574d1fcc3e1e26b6c85f38aa1cb14bec8c7600c0b7f391e006c9d5db224718c548c19c3667c43b5f4ce6514ba41bec0c2d9b270bdd5c911d92e2734fd11d0387a3b6500cb3530d87c2a647b1c7c05a4447a4139707aae7eb37c05fd966ecdca8b4c8d11b141cd16c4d47ba7520bc4d16c1fba"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 2048 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 3
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "1a53a9d6312918f3db6bd5766da981854166ddf2b613ebc8793f50230308fd4563d50ee73e47f2cd146ccd9dc4361af1532c95abe96058891ca144f971f1a22e203a0a73183c84bf43caee8a0b369ee01d0a48b46df821767a1444e8d341552ddae96522c8f216f2f1ed00e54a9053792866bdb44ac58eb81a011a9830df5e6a"},
     {"S", "7b17b13a5ce4485ca3b979be3b14d77532fcbac14e460a54515a6aa7d213ef1410cadd009ce60bfec45bf494514338913a2792bb6086a4cc21dbe852c2b57a3ff5931039973cdacbba96e2ee77fb8ec6c87c14ea10762e2aa9279ae5192ca1c87ededbedfb305fb006a51602e6bf4dc43b994f419c979b4f30719827a348948214ee71565361f668dbf81ef6e94297a3ccd68357fccca6dda237911c938d6e71787b3d4085c66c7ca2aad2db16274df23ad19211aa6380be75cf0b19257af4df5af1e62010dffd23b9742f5369e008224ee40331f2387422095f6e5afe0e125f855de220648a845cbde542ff7f99d926868819aad924b3919654483bbc6d8dd8"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 2048 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 4
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "10e3b453719469227b51da0c41b5cf0fd94b32b6b3960b3c2855aff5560433ea2ca627c3c1c281ebeaacd8ee0b05d3262d85e09651f829160487c4b13439294b42baea86585a9ee7fd581e35e761f5221054112e0c48bfc799d0d6b5787e31b57ba56364e063a75fdddf16a97cd01d4da93f2d44898db4980eb74dcac9d93372"},
     {"S", "dd2ea03939bc68d1d40835a099aaa3ee57a4f11e30ad4485089074d345e57363bd6d3c17b86cf35d0629ea91730a0c8ee364ac80a016cfddb6875e1bff463ae284b84959e52046945ee916256582facae719c33c6e892a3a7aaaacdbc300c76486633c8720e6207beb6401f1258997a0bd33c752ea4799ec99685ac1fb9066cae45fc861608cd74aadb367fdebd28fcf88f52ce4942f74c8a53e809fe4953434d6484113501a40605a11c460bd9cf290e37efe33b161b96b63c2270dc1c3669100d1085afd738cf8723cc9f232f679ffee07e1d536a7d56bd2248f37610fa582671d6414440caffd10aa3d09b95fad2c2c41bf0ca33699cf0749110f817a4f63"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 2048 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 5
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "db2e9fbefd9832d29e6015b976734ff15a5c1177a9153b38e61d22c8a6ca9056ade10de054645da32eab4ad6eab6a4977bc28526771ad951bd301e2f5bec6911af44aab6cc0d30be1e1170615261026170edec3d4a5123a81af24f39674acf642880fda92c3cb30bb9b90ec4741c71378004cd26ea622025458b3c4f918bca37"},
     {"S", "211398c068e60ae49ee2b8b7cd96171373f4664cf45b62415d9bcf119184c03274aec2b3f04c598043d1d8642d53edad68d0e0bc33fdc65ed69334ab52303c839cbbaf0586508007dcf4ad5d297f568039dc16a1e6c08108a0050d5dcf47523e4868e4be72f20d789b06bcb92484efa2fcd903ae280f42a509dadbe62dce1c6d3aef6e4ff78a745c8500ff0572748abb1a220495c1c103a72c940206347c16ae6082dd1e4624525aa8ed8f118d09be2b8535d042b29ea3e2c6ab3c990b4b59501c3bb9d602c7813a55f4efc129f4dfd0fabe0cf6b8c8c1d9126c5440cbec5405722927389b3ca80a0872711388b5b099cce6effedfbd9befc9646ea8a258fdd0"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 2048 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 6
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "974cd6e98a4c88f9274b47c8da1483923bf4213dea137c47bd03aafe1e9a00efaefdd8a02ffe9182a0a8d821a917269e3a8e8a5f70c3a905b87d039e3661781c68090a070657e46e2d099c23bd8db528001668648cefa39a6a10539c77efdfbc0b98f484d90088a716961936de1c3617d3b541b4073f73f01ce2205fa9e93db6"},
     {"S", "9c36a3f2750370dde85811caae4d361a7499f8ee1ead65803fa861100086ee0f5d96cdb33202916c34b7d86128a023003bfb55eb43a19693fb32c17393b77777e34fbec701d6d0daff8f89ec5c336f68e5f680da08bce0e8e567d86601c2ce076c603ab292de50c97857fe34d59f4105c6ced054e5982397cd9cbbf08ceb53bdfb90b6d75f231a601098827186df27980736ce97e40974c91011691c2dde453760467b094bdeaedfb0350c1eff96f236af768dea38c65f520cf0b36512df938b31f9f74351b221405b1cd04efa7634ac7e966029f45f77afb64bd7d2be4e5922a150d3bff36f52a155ba4ad168036a440d5060f2ad6e323914bb475a46a5d35d"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 2048 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 7
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "049b80ff6c1c1445d472a70b470c404ca0ea2e2a4c52ef3e51c5502c8f31d67a46685da2d9d1ff65d25d376325bd46e9b9d3d60a2466def1b719c575ba9ecaeef827a3477f1d6455a115a3673e00da1f46a10c807945ac4771aeba7fe3502f5022c09b18e4690dbd49813341193bc2964d3e18b4d25721ea896a777192afcd47"},
     {"S", "844074eeba279c98b763fbff66f7324bdce04b27acca85e4d5abe514605185bad21207b62a427fce1d9ac2b2f0d0260d45160a2a822abac1da0a966836521ae6564f38e996538b4af300de69c4aa0a5721e8c89f20320e4e09ad1f99b6a0ba3fa2b41330b84a890c30272f6312b2cbad7d38336faf92a8c4234a0814ef662f62ca3ebd492f805457613e04e241ad9516c1641296334228cccf24562d69ab45352d30c68dfc7cb7e1159bcb5c0becbdb3ffcecb446d0ea2507ebebb6d9c8d9388d6afbb67c5f35df343ad4c23e0b65be11e0f8e117fa26a6abdcfe215f8b0466d31d6168611b71dbcb999233b50dee5414e54d444c3d3c423dc8c58813a571058"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 2048 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 8
     {"n", "e0b14b99cd61cd3db9c2076668841324fa3174f33ce66ffd514394d34178d29a49493276b6777233e7d46a3e68bc7ca7e899e901d54f6dee0749c3e48ddf68685867ee2ae66df88eb563f6db137a9f6b175a112e0eda8368e88e45efe1ce14bc6016d52639627066af1872c72f60b9161c1d237eeb34b0f841b3f0896f9fe0e16b0f74352d101292cc464a7e7861bbeb86f6df6151cb265417c66c565ed8974bd8fc984d5ddfd4eb91a3d5234ce1b5467f3ade375f802ec07293f1236efa3068bc91b158551c875c5dc0a9d6fa321bf9421f08deac910e35c1c28549ee8eed8330cf70595ff70b94b49907e27698a9d911f7ac0706afcb1a4a39feb38b0a8049"},
     {"e", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "1dbca92e4245c2d57bfba76210cc06029b502753b7c821a32b799fbd33c98b49db10226b1eac0143c8574ef652833b96374d034ef84daa5559c693f3f028d49716b82e87a3f682f25424563bd9409dcf9d08110500f73f74076f28e75e0199b1f29fa2f70b9a31190dec54e872a740e7a1b1e38c3d11bca8267deb842cef4262237ac875725068f32563b478aca8d6a99f34cb8876b97145b2e8529ec8adea83ead4ec63e3ff2d17a2ffefb05c902ca7a92168378c89f75c928fc4f0707e43487a4f47df70cae87e24272c136d3e98cf59066d41a3d038857d073d8b4d2c27b8f0ea6bfa50d263091a4a18c63f446bc9a61e8c4a688347b2435ec8e72eddaea7"},
     {"msg", "76ee8ec93353c62749c49c66846ce128cf177cc3f9e85494b94e7196f0345e322f78d159799f8dd14ac788ccd7dc49bf980f957104844a539c4b8b0f2a921d634b1911302be6a4ce903963a31ac293f4c912cffabf50f339472d390d1719a286d2b89875d18fd1c723047612d285856e68077486b2b217efc4dac3b83d32b442"},
     {"S", "2689f68d42cbde98b3627fe809380598fb1aea001366c9adf82e7349515ae1889a85d16e2ddfcc51d83699fa2b6da580c1c5f32a53208dc0835ae745dd8add5238a4842413a107bd4a39bfaf546b3c994cf50e29add6db3b5138c34fc7894b910b00a5d5ec5c87db8af03e22997d515d1430ce3b47543a24ad957e192c996bb0bd388fd65823f0cbf40d46776ed647989e7a5d6a6ce4d433054d3c6873aa04a4bd2fc20a92d68b90e412e44c44914a76fd12664034c207622107c51e92987e51ffd381605b246f016fb78452d7bdd73891172d3f88ef2e2da253a5800b469091d9a43a947e85c8da2855630630efa63b418f5345623e3c258f2e93db3d094a52"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 3072 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 9
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "8cca7fc0ca7689c0ba19855c7676fb8d65682c255e77510510a92491a19aa16195cf0e39f248393ca154015c18aa171536b4065b6e2e71d128f09c3b64082f36a10c3627fdaf6b719d91b8eb4f5cf8916e0cfe79078ed809398d5468e289c4327829ff7034d2a8c77678b3ef65b42467d5171a676fbf0d170b2754fe6143eabd"},
     {"S", "5fb3a33769af2790501d8bf8149d720ae2355e2c19b9250ef3efac5398ab644c0feaf8a51d09fe25ad9e871f36927e129ac23ff70de519937fb2da6371dd617bb9e6f5c0ae8e3399d8ce503515301570950e31849d67985da08c6d088bd7d13074c67f2163e457b66f5f7b5111e848204c78bd3bd3fc04d5462b0efef47915f862c26ca28fa30bc9e791f41630c6f8f484f27acefb14c894df87c52284beff19374a40fbfec8f5979de9ab89f9807840e6f055f7ba495c38bb074cec97664121b9ce8bb4bf8fb3714a728a1b2297625ba2d5afcc79edac68362ef12e86e41be9332171aac36687422b6c5466dfcc599d5d3712608dc8abc41d4660541dfcb66da3ca1887e956775f6af163a0eb2d0e51fa85003e08af58418c8b0f6ea0df765f070c800cf5403a54b74ebe2ef6f101b632680868fd59573801012f79119079a2dc11111f32496f3e28f70f1c4b9dadf0d4dcb1e0d3f1455c8d8a6c24880e55836c38aa89d2f6c225c09a8669078d029a06b82e32425f3299dd8d5ca354327c01"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 3072 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 10
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "ee3e12fa06c74248c2e344877c92e5db1738c8efe5f366e6c82c5495986cc5efc5714fc03e82f29f91ff561d533c5443c28fb83ca9a8454e8421fa0fe55694d51677546e00dc02114b983295c750c6e10b4eb4a45cd10a46d0a72f1eb2fe6be52978a96a157d7c883ad56155a076449d399a458fc515bbb5f3e6792ac90c5107"},
     {"S", "0c57bb639a1bcecc84594878c9df7dba1a0cfe13ea6a6f0b48f0a817dd13a47e977a1d21503a469dd905bc35d0022232ef23259542ac860ce30cc5835c196b742911c3d84e90101b9b200b73da4f995da01b7f2d4fc572075859af2c86d0000f376935a0bf183668236bc5d3d2bef74d8ad9a935ab7171929145d1093fbbc03e6b951a37640c4c71f1d2eab81a2c1c6c8bfff0864c1a8d7df64b776da1dee48b8ec843a732e4e5e55481a2a4c1db66188ae585af7dc9b55e1ad834c8d57ecdc5080204319618885792810e8bd79da22e1388cf49bc84cd69cbfb4aedeb9a615644da158c3486aa4a4fd98284096a1e48008dd6aebd5392252615f4b663df30dba393e17d37ae84b9e1f937e60ee8c5e6ca8108c2112a7590f2d32b366523b18b0dc23dcf1d0754b5f569b2c85c49afcc741fef0ece5ecf27035d1b0e32d05f74dba53dd39346e45833135ab7627935164db6f5329094cd319bf27d6e8b84ece2eb7ce96da47ed75ba20a8e5f717086bbc29f3fc41c5e2117702b5948076aeadb"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 3072 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 11
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "96cf462a9446d4ec4a70af8c1644c5d0f8d5b07cf42437c5b83918087f7205bc351aeca6dc3d7b4b2ebbe4ab849cdd2cf6a3ebd5c426e1bcf51da3c23d78307d24b6e07665b3ea9594c128d904fb1f4ce8d63a37b8f95692d74f83be725a0977abcaaa04f74e27b0c4aa067e600a91191695220a9a469e2da7f74066e6bf9890"},
     {"S", "9d739577385c3124ad11db386fd1818657af9a0af06eeb54de027000effb4ca87d64d9cdcfe80f9bc4d370a5ad1ff676437f26d100adf719c807396f93bf3b3511e2191cc042584157f08606a07946cf640f1e0b94022ac3b613b63473ca76d4d3c401be1a1b6aef01a1118f0051c2f79353c5afdb01481c98ba9837c9376f94e72cb0030319160f05cb390576bae902f345ded052466285c0398b2834e2ca854e98aaa3ede2ebc569ae6fb11189925b50d93309a989fe1f93decc3e785faaa750d92aad9501a530cf60beb94c6eccd67509978f333fc26c760fdda487dd1549a71454f996dfd36f9317d758f7d359194f005b4fa4754671f55b879be301400a7756bb07ab8d4fa9b7fa3f289473d6740376a3ca0eca54d5c64a492f7110a201c2de5f89ea9d058d2b38621e43ba96d72770b99835e20eea4a6fcd25bee2c5bd03e31169b924df990cb9d1374b9b87afb798d8703073bf570c091a4e1c43a67efb3b81be5b77866f13ada510aebc827514bcd55efa69b3b580e7af5eede53c34"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 3072 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 12
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "d5b58bd311ca3173ba6ead0effa14ad21f38dc552c8ea4e410777318cd7512a9092fe287c91ec0277d8a2b1b3db5a9e65256660ef8481f7362843edeff4d47ddfcaa72cf0a199a3b61825566046a652447694fee8fde49355ae159f67f79bc8fb60f85d15a2386566e3e7314df284533085add1c7bb6ead3ff760c86d5633a66"},
     {"S", "baab3a4d1322dc8a11846abb0a360bb8de78fa17b59677543d00de62e661adf86160496fbfba90d7b88439fde23cbeea41d24ca5ee9b3ef39368e03b240e14bbbf13bf1e727fc7ce0b60ef1f05cd2aa4a81e88a046a3ac0400e6f84756aa9016f6b03f1d1ef21e11ca33b5d80e5839c2bf6310863bf5794d4128275e01cdd5388a306ed4d37a5ab84cdd798c0331047ad606518d0f0871e9c45266e4379e6c53d929a025ce8910268c99ce5414d1cd040f69abecdfb12cb4c8cd651d27ebd1b2a3b66ebcd7bdf9fa97e3dae41519d81a23667e302eece8805e0c8a9b0fd6409ffa3b55b9818cc0ad006992844bfa5078375e8711a023d61610836f4cd3ea8bfa6871722e96549864bef6c6d50a62d363e551d9a080a654ded270d6b145b2693c784137903481fec551281d11a835197bc428229c952c844ff80329c7b4469969acfc2c942c39329243173003a38e13dc915cb3a55ad54e79a703417c171a98633d3c463db66b34bb96f7565d7cc20893e7037921f80ebb58856c8d23b3cea7d7"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 3072 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 13
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "20c328fe9add7f432a4f075829da07b53b695037dc51737d3cd731934df333cd1a53fcf65aa31baa450ca501a6fae26e322347e618c5a444d92e9fec5a8261ae38b98fee5be77c02cec09ddccd5b3de920367138a87b4fdf38815b9ba69642b621fccb2ec4310a136c73d731c7847eefaeabb877b5fbda1700d74de758b63ead"},
     {"S", "6613f0059d4adbe9161557a9bb69b26ccee0bbda9644c082f25dc427c0ee7ff5e365f144b5bcb3ca856c5a33cde8a448af076bb578d82f436fad1b9332b616dc153346b3febdbcca6d4d626a3215e2eda7d28c99c23ae9b7e54fadfe995afcc58c2c808ea61401bba3d6e04402ac05c97831a590e704c8eb1a0b3dbe69839dfed564e9e6e393e5e8f27aed7a0f4662d6ae6ca8d9b5b303e1aa1414a879d99a02a2245eedacb8a6dd6851ea2608361866f9a65a07b2db08edad620db12d3be0f7ed5cf7aa6b79eb9383e14f0a7a0e7943a57fef64322687fdeb6f46e737f345643bb7f4e15f919332fe2036d3f13f71d72fb3a0b3bb19403d5fa34a5de6c75dc67b5ef663c382607b5a6b2e017a0dcc38f2bd27457355d0331270d05cd0ee21c41ab7419b8a9cf3d2cf400f1bdf4ee28175f55a63aa5d5e48a7482c0b1f671493c3e20a5548484b88c244fb30486c882f2cd2c8343ca1e9acc12abfc6870099d1e61e7501080cb1087ba0f51c050c864f35353e673b8ce801646e0433513c8916"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 3072 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 14
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "694ba0a1cf223f98ad7b9f7e2fa16b9e7deb2eac8f41c46343dd0f6cad4feb82aec463d4c88725aa30c8334c259ddc208146eb128eb51e381a4ed9b6ceeb1ce0bb23b39f36ccac16e6be0e851bdac86d614be8f5560c0d8cb8aa1fd0c24c3daeb9f0f7cbc2f7be23f6e498f1b86119ce46838e1c8f4e7ba5457c4880327a3735"},
     {"S", "2afa4db1e41af844e7ddc5f0ff402f3ea1c676902ca787c376c8952089776fe07f8d62a7b2b10510705663f32e4db0ebd365d169505d5d9bbbc89b37b74c24ae3b9c68112f62420983b5badbb238385f691a6795c926dfa86a259d5b073946f69ee99e683d642690fcd40f5a8e4f647c81f85262d26a2b4593e4c2cc452c3ff8ea9a965eef93e318456b3ff6daf3ae5b10b40ad9a4e54191b395e7ea9c275bc31f92637d6d51117b42b57a94c6d049325ef5b2dffad0eb06f5e3c61b796c55c740ae09cd87bc6301dde55480bba60cd2667e8e564cb56ead71b478e82565380c8aef27b41ed3b826027625264cf042c5497cab09e957bd02464239d29b2ced84f926bc169b1a6917e9076f6597e2a55804620cbbc596c68083ce53985ed7bbf8777d41c70eddc6dc952dd10029797fd081027594340d58625a30fa294c07b40f45df177a6e0d9f505e47ae77e036de3c52471ecb184954572f198b7c9b81956ef0169c8375023e97998b93dcd9340a39997af69b083310cb61eede3b7d7dc9e1"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 3072 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 15
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "8728b76733676e20a76c7fd31e959cf7842db351db407266ddae0b36e37f34270576724083e9989764d08a0d5c1b4738f34927a1e4366130c334cfe4e35ef6c777294122f73c8dedc682ea89117da0b2fadd71aff6511ecb739d2d09bfede8142568a9755909550816aa27b10562af4be1111ae1d939b3213510aa0d3dd314f4"},
     {"S", "56a6d09254c656c35eacd50b69acdafa06935341c59216cbf2eea84a678abcab22fa17109512a46a30e1721c6d02cf103ea31ab154dbea1f9a59385dc415744636f017ee1ee0304f37e034b5f397815d58b386b63882db8d06c1ad5cdbdb834433b5349e5da719f56bc7a9ff58f3d05aedb810704ed34f8aed26546bb9417a89a994532cbc11632fae26593e090f6f9035d4a2df06584175264d6ef004e34b4a98ff81126579b805352aac5e5a6a3574bcf88f2fae077adf7e66a5bb8e8d45d28eecf89ce0253826806f7bd0f27a5591e8482101c244e5d518d0285ae286819576cc00f487582f5fef5045bc17e245f9f13a4e6c6dd7b92554daf948009886132719cd7fe3b39d8020396e98f0b19c2e40cc1e905d306d74217972eee1d37676238f21efa4ce41d1afba1768e3976b909bc5f1b2e218bd36959ca3610795c6e7ad31752587627cb379ce9bff20d9501bf5f1aa5e5c16f101df44a6c8845fd7b3c89879b623a77dd1271b586b0982cd67388c3b1fe4a1a84f5dcc48538e19da03"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 3072 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 16
     {"n", "c755df3cd383466596520290b6f7afbe8b949eb5f9e449ef4e34e397b4d0a93257ad93a83b2d177ea37eeeab1ae175ccd81156ec1381072b30473f613f1b918d1b39653ba6cdd832e4429acba2fa05e44cb296981ff7161f17a5535b2adfe0fa8a56b092f35dce1fbd4365e13970befed80b8d9f413297db07bcf491e5fe236dae0172e05147f7a85a3ec11a074a91aabda90e94949eecea765444ae30ef629ac682efcaa1272ee17a2116019910323f00c95842cabb019cb0948bbb362ea57efa99a78b9785658edcda6c29884a10f3cf289197d022aceb2cdbe681ff5c436ddea48a380b6b79fe2bb88f43c1922b3cc13df4baf7e6761f29d35b47c1adaea89594c4c7fde4eba855e8be1fee172af4b35cb732e39af61e582ddd60d93e06c74b0d560d015a02e5c4d4c33cd68b50cf69089fec3e19ebcdb45828e96f5d176584fd3827adf87c5b9174583a2373243c24d99ba202e0d4849e7ba073a6081330eb5b50254113fe3e4207a355c371f24607276eb7a884f2ccdfa8313d293d5e1d"},
     {"e", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "222a4af8a935151e08d1761c992ba34ce8ae18b4ce87ad0f6deb5d3ded911d0ae2a1becee513a1b5042f57976ea449954a4c508666826538e70db324871541d17a62d041d4e16fa6ab5e6a1b308c2371e19e7376cff5c0ee23d6a38e9aeee3e7f5498dfaa5e94450c6d6f43191ef8be0f0a52c49293ad371c865ffd238e621eae4d9dd376adf07a8ec8cd87a8e58ded631ab35f34bf4e05d005a89aa047ba73e297b9c3f71f71e0f29e85d55f946e021d1cff0c783e961099aef5ef2bfc2e77cea58902d910279228addd532dc417e7c64f394419a3d70dae19bae780bf932c502ed817dd7bf3c9dae31c9f4156f8029643a20054393c849b32dac3931695ceeb700c006caa8caf201cfeaeeafb0f4bac89416c50f14c93aac5e3efcdc9409e491450bc3ffbaae46b5647b7a9718ef0b32d52403e26679515ae70a5a9ac35851344602d8d424b6c556b64eddb9111df66e6d8c82c4b9734eb986403957ffe415af0d13d3aea4734ec77b03e359bca2cfebc3e6cc96e46b3cb80bbc04205af3e1"},
     {"msg", "bbf033767a3714f3e2a037af7e9a1fb189818a4e5770f79cf1576629004d5fecec27357b44498c7f61bc19654681a957cb25656bfb96541aba3521f3ab2c1f9050028aca736d1029c5678f9ec6832175e4825685e721c0aa8c36b57570fb502130aab9c9cf4aa6d958c822c3c4498ef31dbfe504e4ba4434b182a9151962fa86"},
     {"S", "ad8c9bfd4cf25a482ef90ada72a0f0858de561d14c47c25a4693a2176a976c43518f0afffaf16a58b7e190aae5d596cc6350578fcba70ec5bd4977a10b54fc05c3027fa96bc0727294bd67b2ad7c1f965f76c8e85808021c7b24f54165f3dce007b153ad376ad819bd30d90f6035463bdff22eb8c11f80aebb413f78e59bd322d3b9ebb2c13668cd94bfd00ec183c1d1be05ad2faf376b92dd6aef8b151509f5406dc507a817e0a42792fa5af4279294e70effbc7892e8c1bbd614d040cec24dff252495d85b2170206b69eaac65c3d99d4dbdd4bbc584daccdcf2dfe8eef7a0c447115d30270f4afebda47e6479f6095ad3e204a0117143b5901ba809f1a6f73a0a23e9cbb1d7f0826059095b0954c57f18209f223f662286c9b2c098b2baa855e2df4124276b8585132b6f9e902d99a65353b30b9639df2b4a471ea53dcd1d14d4b60df94387089b2e2ab73a686bfe0465c80cc28a3db0f16c1acc5dfd493c6b0d01a3818917a76c210baf2e766d665a6bd155e902ee4fd82c65003b3cbda9"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 4096 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 17
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "a526a9fe9096013c48593662c6562332d003f379152bdaee79ee035eae09c9060457294182987763357251e4c8b5d2c155e3071f7bf0a731b146fe5dd90c2b9a19a88b1de6827534610b2872e7ff010ce3e7f283e7e12f83fca32a0c36bec2cf8b20b7dbe4dd6278752fa3534abb1adc23159aed8287daac020e6eb2eaa6f66d"},
     {"S", "c76a2cbbc47fb190d4573eaff8ba3015adafc543f96265178048b76e8735f4a478c764e49251958d8686fc4a814ad317e6202e44e365027892db59988aa6b3e700d18dc648a44b01bb267cd3ee637a633ebdb6cda742564def52988d6e23de4f851aa4bca4f23fdf1de705c8588256a8e15e02b855321fd1bbf543f560e0c64f3a297d384fcf6008c75573830a5fd8264d9b8990d7eba392d27fcb41d70f8ba18d48938a899a1a27ce2aa860ca7bff3cc412ba871b05c1461aac8c3abe9c3ee54b44babe0968538c4e324536f159c3a3e16010a9314c747f1ae325f0dfeef5c603012adc0ffc5f718120c229fd462c6cdb9dde8022f274285f86d44bd6eafaae4877274ae417efb1bff6ff781ca1ce8e4ca5e0878565ffe91c2cf217582d75fa66b994615e7fc2eebea6668e2f4b2361c6fc3c14196f76cfe6bbca6678c7bd011ec8bbe1881f553938f0a5a8596a59eee88600b6cebfa2ab9e8fce27208d0a5f528f035fd9eb578dc6a5e4aea2cc6b1b5376cc914273656f7f268b695d02ccca6075b2d95682b78895a4f9967d6a4e0a52a84a74f2d0df95380739187a534e3f7cb9bbd4331636306e83b8c87585987934d4ea7e96ed35df8ced393940b2bf6a31ff1c972409e80078f5dec8a56616e17151c60e5eef2de57a701e41fa0fde22d18fd5ec5d7e771bf9dc123aa847413470d1cf8cf1433fb7f3c7fe90c351bdd1"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 4096 SHAAlg = SHA224 paddingmade = PKCS#1 Ver 1.5 Case 18
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "25388d8e792160b27e0713a7ac8d9048cb6e744613115a62915e5ce0ccd1d738a9cc6f0e8c325364c031c20f195fcf67d7096143cec77d25c454c8b11b9d4764b0186a820257495097dd2d849b3052facb30eba891a667d47020f384a3fd403701c486d224bac9ddcab35bef7b28a2676d8a1b5da4d69fd95d6ae542ad174919"},
     {"S", "a19707efc8042dd0cb5d3d2cb862a93bb9799ec03c07d10a1d694bea364b53bb1766e48a1f25a22e9f7cc9b6d103db0dd1560b718710094b69ff61e9433e4ae1039600895f471750925b13e59f9aa394f8fa6a4d7505884ef6028f687cff7ad9d6a5bc9a788a7a43067b829496c54180fe0de8d7ce03edf4d300d07dfa1afe266d20924839ea636651124d5c0ac0aa9bd026d017c7138ebff17b6c9d0b1583aa6943b4e96cf1912ea93693ec9fbcf5cee6edf081bf7a0daa0acd185b645c76ac2c38d26132631ddd2b3ef5326dd4e6298895a0e1d096bf277b25ca739712c166cc4119e29bea72b2e87b5ab0e13b170007a3a440225164ff2fc7d1f0da655ca19c8b088d2f438067992d591d13a35acf9c54fbef1eb45528517d87b76f3b180178ff94368198f02d3a0f210dad5d4c91124ca5f5e7753cf65245016f51e22deca3087b98b00ed3801473d349af290cd93498b2b89ff06f26a9b92f94e2cdeb7643eafd20ffce2c4338515188b73ac2da53ffa4c11eb37205232209f13bd4f0c9f51694c6722eb2fdedd70b4cdd4a469e9a16717fa56f3673da3d408a89dff532dd0e4eefac9707f18a058615e45594e727c25829bc4253f6b627aea39d4fde65a24d40d572bf8d013479d56d67d1cb66fe8b0b73e0e5b3f8fc7e5383ecc5d551eef6e7cece73775cb111ab67861fc11221b08218f772d29ed09aa4b0f3947ed6"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 4096 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 19
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "6a41d3cb08570bfd2a07f683fd9c4b8ffc786b49bfa1dc71137dfa4550dae9a5e731ce753b2c3f43b265f8290b71cff5f21dea88d1f72f7cea11fc0aa301182a202ceafb1745e966e01054fecc6c232bb8903d88e295eb89fb358d617dd28c233eb98f2746a9f2afdd8f74cae9942f797759ce119881fae06e71151386532bd7"},
     {"S", "c232d219f65b663d5f7c64bc0f0f11c5264fdd1e71917bb1b25a37c505c649da3bb8a3a164788a783ab75f0eb1f22ed0f67877faf59d0e89bc731ae4a66b58ff149091066e5015e0c438e98cb5b270949ddba2abdfd3f38b443f0b82a3b4132b8b9ed677a2653b30e0cf381f87b2ae3390a898341b0bf29640a22b04fa94b37ffa6df62c352c8a47b04d35ed0d6f99c0fc9ea340dab3a84e6f653627605867b4b1dbd3d70d6ea218e9dff57020ef44e1afe6b665967de08a447811e98fcfc0b60a513ff18a8e03df63303ed05245d483887da73be1c6325a56a6d0309311ed2efc9c4ae46f6e1bf4ba243bb23b894195480379b20ce0287f4aa578f1e9d8d10ad6cf50de3d6b2e32c60305b4e33fed63fef8b9f03eaa5399e543a2675100a63b7b14b2d1eb3343556f84da005b5671ca09c9cc6b2d1c4928152b3cc67457b9a35beb82f1fe7e9fed1770b343c68a5ba1b6d6c839995a8e6c5da60c6039511467b05a8275eb3d32f39a72e00a17b2b094ffc5994aedbd80f1074e224f84dad99164a44ba911b7d7feb685411088129400f2f10adc606628bdc372b48eb81c4d5ae274fc9fa47427c2171628238edd00f1c897ceb0273e4fd539c8b1b5c43ff20150ae78a27b35992554cd62f88f66fb386514634ff419db192b61d7cde12c2a5a086fbfe4b2e7f49a206093be776e3e7d16d88743fa486f9224d04e5a8e5bc598"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 4096 SHAAlg = SHA256 paddingmade = PKCS#1 Ver 1.5 Case 20
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "d10062df2fd6492a8e3ec9c1bb1a4b3e7d69de41826eceb59a0f7855237b5c6ec40f74e65f7bc57d402033539bbd99ab354b19ee6125b1f32e6c0f7ddfaaa7059bb502ba66d759c7502b62d4ec4a6acf0427a4ec8b38c1ead3d7c09901e70899bdbab4642e322e8e2527ff4c9809e53453c72643eaef2524f21633af707aa7b1"},
     {"S", "74805c6bb30998ca55ea3d61408ae96c4ca87219b22c4d32c653e67d4b96f641ce19f574712e18f17a4ee8c022ab7ede8e0a2e974e5dcf81e82eae3d3e935aad88f3f51a9d7a3136a7baf05cbe3c30cbcba28e7ffccbae8a607799f8efad1abc1ff876f9cb3becc475fd6ac8fddad9037c7cebf5a47b09688f51a51b48f087d6e7dcc6dae5584c535a07ec0022aa316d7e39272544baf17968a9951ea9c22474764d6e7d6a622ef5683f5ee47af6735744fb5908a9cfae7825875afac7686ffab3c42bcef73f850f8749c140c679e809ab1ed407aeff2853b03afd594d8521bdb55dce91f5340077322d81c92e6ebdd8be0ca001b69b444dc54ff4120d7f1f0bf5616061f7e3a99d6ac42a2f5e1b73d03c5ddee04740d793ae35b7fdac52154cd9dd0e78d1bcb5935be84c7104763f00c2b9a8bfee9d7f35ce2e62be17f56f9ac0d3645abfb379edfe4f295f2c5cd56412b895b204329c186f369330cb9645c5c50eaab1523d0296fc8325b3437898f7d3ce6e40a487f78a7e32a77323ea478201e5e1823ab899189e96e0319346f7262b524e0fc2cb949f6a275d69aff5574096c5f81c9c3129b53bb8a9836e7d788b51515913590cf422d7663545d192f03770d9eb9c838ebd6c141765a91135473c8915e2913374bf774d61b1143f10756a0ab61be6c200bf2a7096e7bbb96334b49b8de2544a584ed988e404910c4c059f"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 4096 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 21
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "7247df014b08f109b778c850bf0763e7026bf056b595ed32e8e38df20b975dfeb0882709931716a1d7651c0492c391368c6a1d50446dd71b34ebaedd56890973e71faaa06bb2d8a5f1a3bd1298250ddb52f4e8aee84502843ff80177d91526d39e76306fddc17d3e8e9a7321da161effdd721a18aa05b4968f734c659b24fe45"},
     {"S", "7f6726e4edfbc085332e7171c879954e35a34c223fbbda2cab55bd33f8f584e0ee722d294a79a334f33956110f04d8674e9a1f02bfd878ee0383381c8cd8997bb83b604c737220ae56e7875a3e65dca77ad47509b56a00a84058239721d7ca67eb03d2fb538bc37456a585c7491ff67dfc4bed1ac067efb6984246d69837c2b7a34dee6125fb4171b5732a23a9833251884280a3df5e219e6f84169d4b0b16236ebbcd68d3a94ab7378751030a2f0647dd61e0b26f075a5126b92b6029b8757596018e6f390fd9de0371a11c0d7ec3a62e2cf27fb020c1ad9874d7267debd953b90d75c0bc73964653f8ccfb3d80e951e6484d4ecd61a6a8885f4fea130cffc12dd4058c9a8e58600c5fef8458e5f185186ecd0874341b23a1a0d2138b4894ffd2e0e1aac7c0a23023c9f6144256fc88d2028eeb6e5ecc2e6724c789ef59008276e25ff2591a4c7b9d379c1ee3eb452d8e76e9df75bd83404d93343f0777d68ac1b9a29cd6003eece08cf2213fef5669336a1cbb5e17af34e0bb2250971b7d4f845c5a232361abb6acabce07031d8eace9861e8ae6af3b7cf6dad904ab65d288d27b482824cf9262b13527d38e04f302ec16559fdf05e198e9b2fea57cd2bdf8f6767ec138d6ad3fcab0888d4561efe41c2a1949e869a37b25b2e9c0307d7e7d4c822053e81d0a6a925d9cf8f1dee2d4ba78368abb4d8ca5d39164da55b47f5a"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 4096 SHAAlg = SHA384 paddingmade = PKCS#1 Ver 1.5 Case 22
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "413973543769eefd2713c24e100cfd6c8c562905a4a2c6eee813f80bc0457c70fd8ee0c5b384f4ef4bbf7cedd4e027ff9ad1c50efa4fb44874a69b0b02bc5b04a85143984d858482c99be4be3ffcb6a6ad7f095cc1e72067efae22a1c00113506d0b0393ac768500ca2f638bfa6a90a9ede75eb6a273f19480b1f496a21a8a9c"},
     {"S", "62b3d624aac87816b595c6da931a6caaeb9a329a96000c8cafaab7bfbfc3740718692bccbff955a0353c6eaca1093b8524d5f3c59e784da8d573dd151ce4a9ddf5f327925f4dc64e736929d8cd41bd20bfad57ac31b85271b8c5a96e9ceb02e0a009b24a2f6669117bd86a552f4dd24561a7f62d894ed96b4844b933f4e02f76e1a6d98b6f1d5f3dba231ecd7cf0ac094d6b342886931177d76aff990036ec7dde988c1b20f471233c9fb0a38f417cdd8395c903706409ca96e215c4fb229053c86e2457a6c072a15649ac1c1ea6075a4bcd4dae3a1b238ae3d33cf178792c3d6bd56eda2a6ec4ab7130ce15e80399f77bb765719c1dcd50e4282f848beb3659a77633ad10bf279456bcde1c040a003524435ba86a6eb3ca40cd1ad1fa7167193c584c1487b67ee9ed3f6f6c4aca561fa1328c21e5c177fc9877401fc762c52fe448aa06b4bc5ea6631140f9543b6bc45b25e4196af5e45829255217ae534bd36ef52ce09bced4923768f13c415c3eea41ab767e38ec6c65f482083d5c30dc45333599cf4b332c675e3c5e0f16da059c195bffa5f87e1bccfeac1a7c58944a72e41e0b1ba2b978cb256d187e90435a570784bcc7680c0f791d4adf41eff3a87a05aa61238d0ad4abf710e3faa61ac76993f77e525f14112bf0db508b55f0e8c8de0d3c60d510dbebce13053f4ea207c3ef407ad4e353cbce07c73f932fd0693a"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 4096 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 23
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "e853030dcd5fe68b1c59844a548f85a184a8801a182d6f1af34860c5becb6d1c7f73ed686d6fecdc031cd97653137f269d65373220255bd93027fd378908d968e36e89f0c691f85aa0fb1920158cd9cb96c0525b353541e9b767ba8bebbe1a783bcc3e6d81cff24f1c7eac1142027bd897423a5dff630993b18ffe8b8ef61794"},
     {"S", "9c1be5e857dda58ac54ad9a148038407ebea778650fb48b9345fcac30ac5d17bdda862bf384c2eacc957a20b5250769a3fe3d32f0f1e3e27574b657d3593c51000ed3633f7fc6e2c0ec7b4b148cf34b2f01c80fee1bfb23664ed5e5678ebbb2937921e9f976473325585ba49a7d4af055fb58e350a4d98a2b9e4e03f561b09390358df758fcd3af7aaaccdbeee96a7552877c0890ae435934d47cda981ada606bbe767c7f6a3904d7132ec5906edbb3d2f766f963aac2ff6dbd49986d3a5507666110392fc84bb82b40ad0df6b936059b9045eb2c4a0cd4bbac71e35b0f7994c1def664b7af84ba5e6ccfac1424be3102e15d985890ae44fb06b1b7f45ca18f200c8acb9d98ba114a050912b703f3cf99ed1655b5f631b26fb75d8db6dcbe145d9aadb7903217ef2bd97fab5a0948fecd8fcd22b36ff8ac0d04d8ff17d518bc2286a80e362bfdecc41ae4054ed9b694af8313a2ff8d909d50cf140942da5e77f851e988ea5eeb65bfe6bd793edaa6add6362dd4a62f6395af888085144efa253dd2ac4382972ed40b81f06aa994e4d02000d558e3993b28d77aa66141b7bbbbe4a162bb4f49dd5d3827d750ca79a2bb9fc350c757890d3e80b6d3db102ffa201d79006c5c75aa83b710ec321a2ee2711451195248d5c3e7d3b3aac26a67199a4e85952b5905958377a88b20da16fda986d50be8623491e32a07bd18ad89de4c6"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 4096 SHAAlg = SHA512 paddingmade = PKCS#1 Ver 1.5 Case 24
     {"n", "d25c8f8c97b7e5a6a98de78f19ef18077cf952e64622e4142e6ba5c8ee265ea9b34b9e5cb2c1ac0307547faa70126229b32085988c0974a03198c89f8305be4bdc445ee577c60b7a7fdfd5cf7283f0a1d0f2d65b1ba2fbfb76c5039ee06a944d40ae3843c9a4d60571db4cd16e28ce5b9fb9fa83fa3cf8cfc1e87103612568ecdb1a5c50fbd0911b645983b629ba72bc2d228207b49e00bdae1b906aa15ea2d23f8c0e124c9e7de1b3cd3b9bc6a017c4de3f1d6548dacad6d4abd5f4e179a2a5e782fb8f818cf8f307f84f7f3bcd81059e73192036aca02f805070eded8b5de01037f2b34b41e86bb8c44760492cde4bc3b080d5b0624bfa1002bd6a75d0513b07c354e8edf8a6f57dc14290eb8850659788098b9971fc0492c3ced7c3478689444e771c9434fb624eb4243f740c3ef9c3f3f084bfb59f44a46a1d3b1438e661ba3ba08d525255224816348b4d696475ccac3871fc7836385f7078412cc58e36747d248bb1ab123fa33256c10d1102f77a60643f4247ac1cdfdf4d8d51deea80795964f801f97c4f955eb181136bb39abecd3549541ccc9d29e34a63241a4548e836c4d2159968596130a222608ae0b09d9ed30cbf04d83083457f60e8a686a452baa2b08c177ade1a3cbe7bc0d6ed846c24c4ad5bcaff3817fdf3381e64c39c18dd4f54eb82fc23d3139843228489399c156565df75f3808cbdfaa53594bac5"},
     {"e", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001"},
     {"d", "28a6fc92c5eb22f54f44fe1fd87a2d219d542d6214e1bf43eb28a0743119b727825fb5ade259ad1d34b86ea7885af51f6bdf7811dfd61ff4a941065c551cb206c4fd6d7d58e52be8b37795412eb732b482c5bb0906513bf2ffa3d92c45e032e2af023c1b55878658ad051d5647bc990c79d49e060d40e530791fab5f64d1aef23ef15c2fc64a2b10a916e76e37a8316e0e26e20c0d2a8fa81852795931f030f50294d54f52013b007817cc52315354e495b28ac2bd0e932e6b10fe1b01cbd8d3c8e6b628a8778ed0a094ab004295573eb7bd3478d6380c08c1fa49a8a1445292ef6f707697af97f3e154051b256907588aebbc2a0f991f67a6da70b2772c17d63fd8d12b94ab4e0faf9330a4b4bfdcc6d9137262cff60ec003e61182f201bd07c7d3acad67cf2e780e29a11238785d4802ffa8136bfb4d3558b48e8cb77bd63ffd9bbeac0f51d297f009a7b603a388603c59d7d68a02e2e027bc7249177b185e567b7a092986e8008101d4f58e917c5e9ecef56d5acc00767e0d74b49c2d3bd29ca290e8de04f6e161d5e48af3253a1710d1f5b7a50f888a1417b12c221ff25d9b106128829894cb16eed84333a96abb2ac310b4a72bd207ead3dc2560939307a74f3ba3b8aea576cd846ca963cf337fb41b506bd2320036e3b469af5a1db5a2d7419dfc762441da11275c8825d96d4ce2703a4e183fd20d4a9fb85da6a07b8d"},
     {"msg", "c810b157fac10e2fe1fad7b4f03337b5c75de758066ba2bc5f11d9dcf0cba7b7cf2207aee62b452d0150b28d25529c39248f7d106e81730b2a88f02085e9b3664a16f779b430ea2080ca602d45f0c9a5086760210b37a674e7670f8eda08fba16275e7820bd8e55185f0495cf912a6419d6ef9538794233fbf379df0973067af"},
     {"S", "a7ab2b0a42a60f303f11b8f14ffcd35e7357dcf5e4e3e01ba32b8266c6c3dd59298b059142bbfb9f18f22ba1c638bff000299fbfc38ab5c5fa6122d476e214bf8b0fa96297c1a63e134e1283490f16e362ee885d135a58a450067f9dc08270063ff9be625e99037a562f3a47012988790c23842695d4db077b7aaec633094fb20656adec1c733f49e4eb121dfe91c8ec9d0db80f786f91fab87d6dcf68bca9d3fe9bd18d562f37db5f861850422a64df5a69d7e6c7b12d8ad3d7600e6cf259ccd33e7e66c3b8ca2eeeb1d4c03d0264068437b040c90f2edbf3982d227ccde89207f29c8a9114a0544ac9e2b64991621631a9145cb6ac0b637d495add900eb159258600167d71f28ee249466ad43961b1ea563743fd5c700d83afda3d8ce64c1727c2d4563ce9cd146687c2f8f8c2f402d903780cb77e9d9538bbef0d0c13f86044fc690a180227de71fe429b99ff919f4214aaac666f8b0bf18941e75a61d6ce214469b9757a4856b2da118626add8d2fa4d0912468f6796908c4bffc287db9b14e957190370ba72ade18ad1c2cecbb1d9ec77f92be526ca3320851ef576197fc69702c45fb6594d4f9fdd27aa7623fd2812fed0e26214114327f85ab740272f0af3e4e07885c130f9406c0e39d917ba55b4bab001572c0cbecdd6ade69467bebceb0473d3bc1379bd8fdefc255daac9cb88465552b281d525b7c8ee85acb9f8"},
     {"paddingmode", "1"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
};

/**
 * @param Msg message that requires a signature
 * @param n Parameter used to generate the public key
 * @param e Parameter used to generate the public key
 * @param S The result of signing the message
 * @param paddingmode Padding mode to use
 * @param digestmode Digest mode to use
 */
EHSM_TEST_VECTOR rsa_sign_verify_with_PKCS1_PSS_test_vectors = {
    {// mod = 2048 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 25
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "332F92D020BBC9BE782F7ED9D9536F564FBA8D555B8FF13D58251882A2965DA9B0BBE810D24416E460154E696A120B67F0FC6EA1B9C9A9DAB2192916833A619872F352E735BD9E3343C85EF03DA3F7B9B41E4D6C108E52696150FDA6F6A39532A88F95AA3CE655D7CEB0599CD9CD1033CF3E121D4014B40FB2CBF515ABD7EC0A8EBD736BF20FC47B7F3082259C92685459DECF009D7A91999829BCB9CC0D73B94CB4F694234C21FC15BFE36DD988085E6DA425CA4785BBE9DD186FBAA5282BCB63DD78361F9158EB92C7FCB0A40294EA0C9B840D15EF73DD90022BF9D674FCC085E316B393E10C1810284DF6002E9B41C11E5DB1A6EDA159044402AC2FADFE9B"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 2048 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 26
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "332F92D020BBC9BE782F7ED9D9536F564FBA8D555B8FF13D58251882A2965DA9B0BBE810D24416E460154E696A120B67F0FC6EA1B9C9A9DAB2192916833A619872F352E735BD9E3343C85EF03DA3F7B9B41E4D6C108E52696150FDA6F6A39532A88F95AA3CE655D7CEB0599CD9CD1033CF3E121D4014B40FB2CBF515ABD7EC0A8EBD736BF20FC47B7F3082259C92685459DECF009D7A91999829BCB9CC0D73B94CB4F694234C21FC15BFE36DD988085E6DA425CA4785BBE9DD186FBAA5282BCB63DD78361F9158EB92C7FCB0A40294EA0C9B840D15EF73DD90022BF9D674FCC085E316B393E10C1810284DF6002E9B41C11E5DB1A6EDA159044402AC2FADFE9B"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 2048 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 27
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "B723FB917CACF3EE3E3852C28793164832B38ACA5C8602066232A006F876EA62F9E0229CEBC0FE36E9ADBA0240C41D3439C257480451C87342C17E97CB1AD148C444DAA0B34BFF939B127A31CE72F789793E9C6EA7085799BF72947CF4FE84A1C08EE49F40FC288B875F59F3E1662DF169895D95D8BA39BA7D93FCA8A2A5E80F1B9C88B0BCF89445A64F964376DB5A51D0F440DFC49AD8603D4FE61C3D5B2490C75FFD2E061478D1A54AA7356567E16EB0D7E04D4D95BD1E1E7BFCE7E8354722C12AFE756E05FD0667B8D09F5B320257A326146E5F0C9907F11246CC913AB45B92BB1397256828BFD9A9AFA7CEF808B874AF7D2B95854DD98FEC7412965A8929"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 2048 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 28
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "B723FB917CACF3EE3E3852C28793164832B38ACA5C8602066232A006F876EA62F9E0229CEBC0FE36E9ADBA0240C41D3439C257480451C87342C17E97CB1AD148C444DAA0B34BFF939B127A31CE72F789793E9C6EA7085799BF72947CF4FE84A1C08EE49F40FC288B875F59F3E1662DF169895D95D8BA39BA7D93FCA8A2A5E80F1B9C88B0BCF89445A64F964376DB5A51D0F440DFC49AD8603D4FE61C3D5B2490C75FFD2E061478D1A54AA7356567E16EB0D7E04D4D95BD1E1E7BFCE7E8354722C12AFE756E05FD0667B8D09F5B320257A326146E5F0C9907F11246CC913AB45B92BB1397256828BFD9A9AFA7CEF808B874AF7D2B95854DD98FEC7412965A8929"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 2048 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 29
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "07149363BD076A5ECAC94031D99B621E5C4CDE0E16A784CBCEE62FB9D8035720DA97A652D3031CBC548EAE6CBA4DB34491195BE9A996E04CC6EBEA477D66E68D3DEA36B8FB4BEFB1BB9C78A74F49D3AD893AFBCE3C4274045277DB59C095F858D42AF2AA8381A48899D53C90AEC08D83C78356F826D072730DB0233B62CC8110A67A70D2328DECF7FF9673CB5D2CC3D3282C69C89A277B7C53E428A55235A3CB9E38CDCDA994B1990AF06512B59ABE7235651F3E93EFB9670BCED292F58F021C18D9476F0399A58184A0A8BA67602A563D4B13FAFC0835BFE0E0A4067DA2A46E845744A6042A22A95CFE888C15B297BA85F79BF5B036D38F953AD8646FF4FC40"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 2048 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 30
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "07149363BD076A5ECAC94031D99B621E5C4CDE0E16A784CBCEE62FB9D8035720DA97A652D3031CBC548EAE6CBA4DB34491195BE9A996E04CC6EBEA477D66E68D3DEA36B8FB4BEFB1BB9C78A74F49D3AD893AFBCE3C4274045277DB59C095F858D42AF2AA8381A48899D53C90AEC08D83C78356F826D072730DB0233B62CC8110A67A70D2328DECF7FF9673CB5D2CC3D3282C69C89A277B7C53E428A55235A3CB9E38CDCDA994B1990AF06512B59ABE7235651F3E93EFB9670BCED292F58F021C18D9476F0399A58184A0A8BA67602A563D4B13FAFC0835BFE0E0A4067DA2A46E845744A6042A22A95CFE888C15B297BA85F79BF5B036D38F953AD8646FF4FC40"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 2048 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 31
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "7E20E95A1B456E766556989F2CF2FB73157624591018A7B4B47D00639AAED29E7294DFF25263B20EE977FD25F27BE0C532FE3139DE434BF10F20D6B20AD8698C91383C3461FDEBC745347954B9158CEEFD9A1584DF369DAFC7451DFCAE1FF5ED458BDDF51CB2CA38D961470751FE9D19A6E2084DD092357CAC95A1CDE31AFACA9E487460B6561DFFCD5F53BF40B7ED00A22E9894336FACD6F0FCF879C5C98C8AE670FC6A86E5F478909CE5EB536EF164C01D64D1F2C68287EBC4E07A014242753BB2F703BA7EAB406371B94C0FEBFFD2E4C703EAC18C31BF63C0DD7A55685791559A59264AC6FA7AB23A9AFD61F6B9CA7E9AC8F9C02E6063098930F7C466FCA4"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 2048 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 32
     {"n", "d58dcfa1b7b8dfb5c3135e9cb4ba80387f9841757fa8585ce00f431aeb7cfdec9e1ecec8cc2efd935a9641124f563a49f62d426eafe0fa180b4d9b27957f897391c75ed86341d6ccf56ca79a880c697375809c973cd63ea238f46fec331d3dfa0b71e5971d585d14d52da8c5bec9138a6041eb8cbc645a88a9bc6a780d2333ceb6e753707a6b91321665b4b524118bd6c5430e0072b15bfa0c70fd2da1edf68e3d7c657381c7247f45497996bff1f28a9f0d70627aa3b638a549958e6c8fae9217dbe851ce64ed41fe847dafae743f7c9ca9c597aefa827bbfb06e603bd775223e39e214a17b5f51d54e5196b99d32f927749a2492718a1c57d6e5ae2a178549"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "0904E8BCF309B0FB652A66DBF9FC6AA19D61EB6BFAC8B8940CD67360AA7BAF2277859CD2B45CEC1C4C0181A642FA61E0CFBA372CCB9FA44C7984423BE2780F8A28B23507884BAB50BB649C28D06825B2933C3878EECB8B3D29D1656167FBDA14966BE0C89224B2BF4A17F1F3B2D08512FC1379F29EB81E92D6218600B76B2BB02DB20CDF25D8F933F503D192DD9DEA9A13D94D4163EE6E627C9AC3F23AE909BB63818D50AEB72ABAD107BE0154FEC416693763973D3AEAA232DF3A61044D86FA354E302AF5458AE81A2F93908CADB95943618F4E4F6DFAEF136E16472A70877B65120BB26FA9859E81BADA3B2676110DF7C17506C15E3E661D55253735F5B4F1"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 3072 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 33
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "77E68018A7446E81C7AAD03C6C6EEB1EEC3E843D2FC1BA8E74D93C57A37495E94C6A166686D15A4C1C1EE1BA572489E6A6C8A6619716BA2165B6CE85C390DFA79419EC01F940D9DFB6B849037EA42BD019071D5746A4B13F3D4D4FDFFEC0153B68EAE56115742C14D5C135A9FEBAC15D0682B301AEDC2955119058371A8B18E03BF7BD9230551ABD903C53BB16AFD36D6C148CB84CC6807038504DB643A85CA68FCD5B5603631F0DF8008435DB59C741D4AB4D3F2907536124457D315149A7444096AAB7013E4B635CF2E2014199F243D4682C8A9B58824060C23D590D06D56902207D192A8DF828847C39F19A3AE077943480EC36FA31C490555F156A678C9398146B29DA68B09DE0D2CFB53DF0A5BD5F1C9EB49C46A4086404B01FE881A283E88474065B36142FE7F35DC7CFACA84FE4265F6713DC8EE228B925504374C2BA8D1AA23A74B58A8D087EC681FE9ACF017ADA95A228EFF71A22670501DC5EBF7BE9467699BF32110F8E4312B2B0D2589BF412E76FA88A279B964D50276600FC65"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 3072 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 34
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "77E68018A7446E81C7AAD03C6C6EEB1EEC3E843D2FC1BA8E74D93C57A37495E94C6A166686D15A4C1C1EE1BA572489E6A6C8A6619716BA2165B6CE85C390DFA79419EC01F940D9DFB6B849037EA42BD019071D5746A4B13F3D4D4FDFFEC0153B68EAE56115742C14D5C135A9FEBAC15D0682B301AEDC2955119058371A8B18E03BF7BD9230551ABD903C53BB16AFD36D6C148CB84CC6807038504DB643A85CA68FCD5B5603631F0DF8008435DB59C741D4AB4D3F2907536124457D315149A7444096AAB7013E4B635CF2E2014199F243D4682C8A9B58824060C23D590D06D56902207D192A8DF828847C39F19A3AE077943480EC36FA31C490555F156A678C9398146B29DA68B09DE0D2CFB53DF0A5BD5F1C9EB49C46A4086404B01FE881A283E88474065B36142FE7F35DC7CFACA84FE4265F6713DC8EE228B925504374C2BA8D1AA23A74B58A8D087EC681FE9ACF017ADA95A228EFF71A22670501DC5EBF7BE9467699BF32110F8E4312B2B0D2589BF412E76FA88A279B964D50276600FC65"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 3072 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 35
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "17917A3AB87C283E43432C64D963BE0DAD296FD6E9D3AE197387D4DF8958C574EDD3AEAE33748B9E4D86F82E6385EAE353F2B8860F062A47E883A45BFE9AEEDC98CF303CEEAE7A3DC75EF9478C2E90475E8BBE57ACC2F6687498ED17CBCC09FE10EF1EA60D2FA86E27BA017AF3C8CB347D73C227191F9816DD777BB4406FC530FA70610C4240DFC9D7B2318FB03EEF1F29A7D3BCC4F65F2055A9BE5B704CA52D4E17C02ED0E9754637DA59320643CBD1DAF35AB73689A25FE01CCCAE23C8DB207D8CC6CF2C7069A415795B688A630EC6874716C4124EA9C4B374578065537C69113DCEC17A47947760F4C36699FC8CF2C0BA24726074399A7F53E10B20DC208C599AF2C9A3B98A1E48D3ED03FDBB81BF9EA822932E5B1110FA977D85A0DAEC16A6CA5381989DAD3B0677A278ADA0E99112A2EBEDA32F8FE5762FC05D9F45D15FABE7FCC5128384E4E8474FFF579F63DB651DD97D69E2E454C2FDE1227F8026594E47374A15F5C7D44FCE486FCD1F9212150FB83CCAB34CACB4819DF0EFD76DFB"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 3072 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 36
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "17917A3AB87C283E43432C64D963BE0DAD296FD6E9D3AE197387D4DF8958C574EDD3AEAE33748B9E4D86F82E6385EAE353F2B8860F062A47E883A45BFE9AEEDC98CF303CEEAE7A3DC75EF9478C2E90475E8BBE57ACC2F6687498ED17CBCC09FE10EF1EA60D2FA86E27BA017AF3C8CB347D73C227191F9816DD777BB4406FC530FA70610C4240DFC9D7B2318FB03EEF1F29A7D3BCC4F65F2055A9BE5B704CA52D4E17C02ED0E9754637DA59320643CBD1DAF35AB73689A25FE01CCCAE23C8DB207D8CC6CF2C7069A415795B688A630EC6874716C4124EA9C4B374578065537C69113DCEC17A47947760F4C36699FC8CF2C0BA24726074399A7F53E10B20DC208C599AF2C9A3B98A1E48D3ED03FDBB81BF9EA822932E5B1110FA977D85A0DAEC16A6CA5381989DAD3B0677A278ADA0E99112A2EBEDA32F8FE5762FC05D9F45D15FABE7FCC5128384E4E8474FFF579F63DB651DD97D69E2E454C2FDE1227F8026594E47374A15F5C7D44FCE486FCD1F9212150FB83CCAB34CACB4819DF0EFD76DFB"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 3072 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 37
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "025D9608BE65B6890444FBDCCAD9422F36E9AAB2612F29E20A9ECC3F20B6423855AD87CAF37C991B8B6F61700602FE5FCDAC45B5DD42B3042DB537D06C249455AAD9E6178DD0457B61B89A7222BDE2223E113AAAD5D3C0C8C9F691D9D8147D6A6834ACD2D977D309999AC56617B6771D8FF27F69978825221505382E662A2027628A59E6C5BD52CB0EA17F6C084E612479D3DF49436D6F4ED743215DB6AFC0E1330BC3AC023A52D416288588F6FDADDAA4C071B9766DD7A777DE472A115FFD3338722FF6B56C547125201A0DB0855053976EC549E4FED5C342F2875B2BA069227B8888E440C23DC56E7EF1523214AF9937B387960E3317B8B256832E4BDBC7E4E22D2A367DE15AFF473F8356C6823F1633D804B4A51717ADEBC883EB67CFE6C85A848D4C4F93D2347025DDCE26E4C3756D8CF92B71E831942C8F31F87B9929E2CF8C4ADF6AE2A7BE12CE95A0AD0E2A2EDE73B5EC49A7FDAB7D99258C346420212A237E019CF843BEF65257DA068910DD24DEACD4FDC1B6F5AE67D4EEAA7EF5E7"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 3072 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 38
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "025D9608BE65B6890444FBDCCAD9422F36E9AAB2612F29E20A9ECC3F20B6423855AD87CAF37C991B8B6F61700602FE5FCDAC45B5DD42B3042DB537D06C249455AAD9E6178DD0457B61B89A7222BDE2223E113AAAD5D3C0C8C9F691D9D8147D6A6834ACD2D977D309999AC56617B6771D8FF27F69978825221505382E662A2027628A59E6C5BD52CB0EA17F6C084E612479D3DF49436D6F4ED743215DB6AFC0E1330BC3AC023A52D416288588F6FDADDAA4C071B9766DD7A777DE472A115FFD3338722FF6B56C547125201A0DB0855053976EC549E4FED5C342F2875B2BA069227B8888E440C23DC56E7EF1523214AF9937B387960E3317B8B256832E4BDBC7E4E22D2A367DE15AFF473F8356C6823F1633D804B4A51717ADEBC883EB67CFE6C85A848D4C4F93D2347025DDCE26E4C3756D8CF92B71E831942C8F31F87B9929E2CF8C4ADF6AE2A7BE12CE95A0AD0E2A2EDE73B5EC49A7FDAB7D99258C346420212A237E019CF843BEF65257DA068910DD24DEACD4FDC1B6F5AE67D4EEAA7EF5E7"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 3072 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 39
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "8ED2168ED73CA9D1E6891E366861F905C8CE23EBA5F6F82D918B0FCB89ECA02E104CB886B22A459C712FA00CAD70315194F729C843E80E697063031D1DF86F5B7D75110D72E32EC8396FF97A770685245A144613DCC7AAE94C245AC2F252BB7AB4AFDD2F83D7A6E5DB5CA1D7673FC987EB4ABB4FA3398E2CC551CD2016902ED914E33D9268DB5B06FDAADF33C4CEDB875D29099907E577CF5985159CF12C403A148AC2535E9F3BF6A112094CB1F3B53BF7C72D5AF3BD29292E99E67726B2E543D308386013122B9C4C49728A1B2A5D58E37F1CC7AA813E56072A82ACB8AD9F18C3093A751376D400826950AAF7870B667EF35CE738CDA896DE6D484DEBBC20C98C0F2CEC63CE3FB4C646C6E53C013028F485E6FBACF9240CF05292CB8961FBA556C94EB710FFD87E0FACEA806BE659F98625D9FCF9527C9CA23D683FF1DBEDC7E9F65CA37C9E53056939AE932A1513707D7058AEFA6A522307D64F1DA7DDF171E379E855AA2D72D4163430A4269830D40EE53ED897CBEDE36D5AED87E7B8652F"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 3072 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 40
     {"n", "d1c83bd911bf9109f5f471f827190cc975d3e9935d100b58c9e9ae7db00227a8e169e28acc316995e242cbee37022c6e047c1d919fde97c7d30552115963dc252de17d5169090bd17c07a5b620ece6419b1bf41d08fd376e34356701023f49778949fb5e073d2ac6fe23b6db713b79df4d85579bf571b59e4fc87c381a796a953bc7861ee0220b2e1219591014242e83358d4361e13a16dd9c039497a7c246ee33b51aa74e22df6ab1f6c9a8246940cba0ae1ba9e824b177e73293af7d401d5ae3c2bcd0fa64b054d95d70d1810ff524621ecf6eab71dc8ab4a4a4965a9a51125c7297177bb1debb84dfea4f3a6108923c7fac26ba39e6cb45c2a26a0ff0314e0f9293278a3b25e69e26ed8790430f625410d27f52f0cff090c0df15f30839328d84d5b03b6aeac5fd85ffdce3b02618d56a96c6b00cc2f4a59744915eba04a4980330dbeffea2c3e55e9bf0d7d5905689e9cb7004e807526933f300f6ffe5840074f716a43e40259e3d3d834b9b26ac5f81c76fb6556b7c3bfe88c82a4a2e6b"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "C3182A284B37E601680F7B1E3A0C0EF7E01225C836C521FF327500A4915762FF25F6EC96A54FCD08C9DD3EF2F07C31E3A89BD3A8C54D6C56B542D0584170A31A7D69202CC1B828E374F6E926EE1969725131FFA22EA768AEB84993E22802E22F5878707C37C71CDAFE2BE46B445D7AF1884829447218839CEC4823CD93A5A809118BA4945BC3389EA7C7DC67940246EC3DA40F5C1182FE9137BC9331D19242080D361004E34001681EC560F5C3C9E38E449D25F3A6DB0033C6CB67C30A3086D004EDAA9F993210638784ED86B58A2CB067CAFD49FEC8D42D8A1C522E6AB3D442018BEA115196C2D3F81D4DD4896433F1CB4ECFB05D51BD8254CA17AADC8D3DCB661748C246DFEB5FACEBC83DC74A2EA4C3138A8EDCBC10304B462BB44D3A5CA1A5C55FBCFBEEB2908B7450483194C559CAEAD176A3E000442CCF4407F6680AF83968755130BA2C829AEB845B1CCE671FDF6118C2380C95EA364552F7A9B5F46979CE86237B9A42CFDD97312CE04C01C2822C278D74801916BD67791F4CC8F0D9"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 4096 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 41
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "544CD1B80A28F6462FB3A032928572AD49DB83C8FBBA21231D8D4FE1F89C3910CD08DAB787ED147C2DA21B9D6A3885D23B953EE64A14955F6B78E3DFD4C4E3606B6C3DCADAC8F7729CE1EF08B63B7345FB6B2FFB1AC914ED0434077A1C88074AF571B44072871FC67EC4A9D5FD63FD52385966B8B1D0CA0B15443CE8E2D2C81837AF23AA1723ACBB0C66C2948B1E9AF1E43F21B475C6C0BF438C2D18085F098E3FE6B4B843E1ECE89FD8C60062A33D3112E125D4DA328C63935677F50A064B846B36D62D1E26F87668CC0A641E409DC0DCEF4078E26924D92911B2BBC796CCFE767D7218440AEB85381FECAF5965C5F50A2BE7DF4F841CE2B991B201B2FDA3D1C92923F2556205720B487F25CAD8EF73814056B069BF1750C6E7DB084E014F427515AEE7AB2B62E6CD5A2DEF20C65DC20AC99C56682C6FD1D1B11A70C6EFFF6264142041CE8F7602135D35F209B5E947F93C759FAC34562B60DCB17B09E944EA6F80AC11304AB71847C5057A444F5E0C32AE8157A9956B526A27336BB24F4BCF2623AF61687DA8F163BE96A869235CC744D6C1930A9EE3568E46E7B7DE2E8AAB4CF127CBEA4919C054B0E0163AF5D9712BC1DC2A53274184000AA7856E2BB28A74DBE41F116352957E79571073BE2DA5F7CDCCB9F69045D80DE69BF4CD19D1D1E3221465DD7FC7FF7644CBBD2FA22E4245F0D06AFE34D6633513B6003859BF7A"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 4096 SHAAlg = SHA224 paddingmade = PKCS#1 RSASSA-PSS Case 42
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "AAD5BC801C05354DD1776CE389D18316E6C922512DAC76341D26CD37C62F89F417A2A753AB651E4A65C6A54FA515A4F0EF3EC9BE699400B09038F4AAD3E7D97D35D2CE0CE29B48D324B2C9348F6350E44835F257ACD0A860BF0DEF43536782F8B91BF280131F43EFF1BE5C6A8C01F0860AE44165798E7B88E570F328B8774B8CA1604DD72EDC75A81E870FCF7A2979AA964CF0E7B3F9DD57A7FDB8FFC6A6C99BCC0B014662DB65B8BF9180B3946AC5A62A6AD201F76074D70F08EA5041C54DC79CD717BE71EC46DCCD20C87F8A68270C2A1AAC8BD3690BE8DE101218A67449D29BE38D9A7F4E5C0729D674FDCE0D2683FEAC3FA7E980ACFFC988B687D0BCFA49957C3D12F0A9DBB4F757D86CA458BABD71C23DA5543A11E86319E8BE60A7BFDC416EFB4F1D5234F62FC9AF7812819BDEBB55EF154FE2A66191C7606C12A0D971D64BD9C8DA57D9834FAC740E4284A46CDE532C194E296BC052551E980492868E6EEBF64DE0A3FBFF7CF0EF1D6945DB789D6C33768A31903D4A6470CB73F9C0287B713AF7F04DEAD3EBB565BFFDEF4AC932A8FC9F2742725EAB575DE097BE843325589CB3E2B01188AF9CD950B087DA29BB7E7A3A2E10A408FFA8EA77555E48F8939884168BF64CC4A93124DE3C17BA2066BF8B79716981124D77F0A6BB0594145A8C600691B1172CEABCE834BA7C4A436CE3DDDE10D8358807E0BDCCEF13BAB7"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "224"}},
    {// mod = 4096 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 43
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "50E3BB477E733266BB6928D4F9BDE408EC338889225E159ECD21B98DC5FE6A4831EF3E802794496145FB254FCE66F366A46DFB496E72869F99E37290BFE74A391FECAD596E5DA443D031D74BC4EE2BB215A4A44355405FE0D4279581160589CD15864B72339419BD6920C86F47962A527D97DC3910449113CCAF5F859C07AE2BF2DA8A593EDD25FDC1703F81D1F59826FE845419190C80AA06BE468F604DC6923EE3D4C4DA5A67FA160FEE780D0891F06ECA56557B718258F8C9A07CB8009A71DE94FA06FD17C044AEBE6FF83DEAB3173119D114AB23F1C631CCE99F6CD25CEEA11992302D43B388237F0F9A718F4F1A9B5F34E123A2FF2E9F53AFB18B1FA35560FBA07A6D5B7EAFE3C8EB9B1B549AEE62B363F734D3686EC5781D4AF8B922CCEA45AE05C2D1B599FE37A240017A00D1959C04A8C64179E117B1367515C34D161BC6EA07883B3549D0696EF5629C9B870255D983AD8952132AE3F958CA7CF6BBD09592EF5CA0F75326F3D8714FC5FB2177C5916D6F2F58E01CE9E2475F8FB3F995D54AE5547FA8C666C1B94D4C36F3FD502A6A0BB8A1C7A5C496C8EC79DD351ACAD7B0923CC2FDD53B9E988B32D87B733B07759BAA2A291B272B76756B77B8EA5B08F7E14A446196BF1ECC62A4991B28360AE4F25C110CCC46FC23BC09D8C3494EFD3973DB515FACC9CB4F69D948D56DF103C00B6A161135E16769AECE7C2A5A"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 4096 SHAAlg = SHA256 paddingmade = PKCS#1 RSASSA-PSS Case 44
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "50E3BB477E733266BB6928D4F9BDE408EC338889225E159ECD21B98DC5FE6A4831EF3E802794496145FB254FCE66F366A46DFB496E72869F99E37290BFE74A391FECAD596E5DA443D031D74BC4EE2BB215A4A44355405FE0D4279581160589CD15864B72339419BD6920C86F47962A527D97DC3910449113CCAF5F859C07AE2BF2DA8A593EDD25FDC1703F81D1F59826FE845419190C80AA06BE468F604DC6923EE3D4C4DA5A67FA160FEE780D0891F06ECA56557B718258F8C9A07CB8009A71DE94FA06FD17C044AEBE6FF83DEAB3173119D114AB23F1C631CCE99F6CD25CEEA11992302D43B388237F0F9A718F4F1A9B5F34E123A2FF2E9F53AFB18B1FA35560FBA07A6D5B7EAFE3C8EB9B1B549AEE62B363F734D3686EC5781D4AF8B922CCEA45AE05C2D1B599FE37A240017A00D1959C04A8C64179E117B1367515C34D161BC6EA07883B3549D0696EF5629C9B870255D983AD8952132AE3F958CA7CF6BBD09592EF5CA0F75326F3D8714FC5FB2177C5916D6F2F58E01CE9E2475F8FB3F995D54AE5547FA8C666C1B94D4C36F3FD502A6A0BB8A1C7A5C496C8EC79DD351ACAD7B0923CC2FDD53B9E988B32D87B733B07759BAA2A291B272B76756B77B8EA5B08F7E14A446196BF1ECC62A4991B28360AE4F25C110CCC46FC23BC09D8C3494EFD3973DB515FACC9CB4F69D948D56DF103C00B6A161135E16769AECE7C2A5A"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "256"}},
    {// mod = 4096 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 45
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "05E5CEB84A2AF3E7DC44050B5CB53DBD0BCFD2E60E321245B9896E24E02BC451A3051DC8ED76E09A8C15246E1F006EA12922AE938FD63F53EEDAE57530A4441E1362D94A4737C9C6B0580A1B698953BC40D76EE5394BCFC7300F66FBC8EFBDB11B633C9BB1CFDB23C3E2BED88DB3330A952DB2DE2637B49C60ED08234ACB648DB10AA07D26B2C8B6B1AB137BCA89E258FFA1730800C93D3E2B4E95E19F3818500D98D9E9AA98220DD54C85F4EF2EA49C7328884C29DFD6EA0F372491734C20FAD7D9B8B1CCE20302F4A56D06E903AE9D42BB0C465CD9BB3BB9E0E14725343F01569F4584B16967D4DC8B0594E60783098743229B06668DFF60662B6C3CB47D66E16B70CA7B7EF916B44D2A77E430ABF0D4A8838BD2C049A879B33E206710EF457C3DD2C501E3F09F10B49C3A29B6D849719847C678F56AFE04778693A6A89AF809ED58DFA28A51B3ABED5C265308C92D95E0335135425D6747BF0888D9D3FBB08061242D60D7BDDBA0157A39BA45E9CC98D84A334618566E3C9548E3948CD2D6A0B8ADE634B8A285ED99B8D55C9AA49DAEEA1B128273DFEC77C87FB0A56DF9EA405ABA8856ECB8EF4938E1D22BEE84157D2C8BD276D8C5198DD67870252FB13F32C8F94036B066475A93A08241F04A8B1842CC367B992C350043B4BA21FBD0FB27E4B7E410868B5628776C71B500152C0F9C0B9AA9A1549A6F6896C92B4C960B"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 4096 SHAAlg = SHA384 paddingmade = PKCS#1 RSASSA-PSS Case 46
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "2146DAA8DE39164BFE930318AFBCEE200A490C1140FAB02290B761CB2FB37F31C461AA13A37674E6B38B84B09173799BFF251DCEF40F947A0907E2F798B6D70D8423BD7267C8644EB70EFE10C316251F6274D4F06D3C1A616FC37AD91EF8ED107915355536CC08912B2D903A47335EAF2032814B8A9B655728068EE0A0D7E4D050C8144404E736151E2F2DB0339B49009D3955CD86108E65FCE2EFFB7483FA1ACEE24C46318E60CE9FC7F91D1B26AE9AD669B317C86973E57B62A4795CC0259608F0B1E34A5DC81064D98158F0490C130739F9B06BA17935F7959246F0814F1A9BE000DC5C21A776482F443535A40834E441BCE7019E8F1FA66663DAFB3FDCC826238E407D1451086AE6D73E10660270815B04B35CD7BA556D881A907894806C82A81CD4AC5483CE96AEC6FDED9289A0A990F0380503BB37F4266AF33DC4D5D5AD46C1F28D85E64DD1CDEFB19A677534A4EFEE9EFF8407FC39D7CEC895F288C1EFDE173CA44E555493A9D06D8B2FF8FA310DD08C79E628A711FB52B29CDA85DEB5B95085749EDAA16DB57B0C1E95B7B31EBA5767F174A03CE4D237492EA8FBACE6048CEA59F2C00487D6F7B7D1873A3335B31CA8EE40C3895A7A97C7EC404EF4004689DC6219D4CB186FFB2A8084099160DBAB8102646C6F6F457E18C08A0B80CCDA00E067A725303BBF7E8DC9CCD10E125BD3FD0C1D2DDAA5EC42B25E53B7FD"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "384"}},
    {// mod = 4096 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 47
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "19828d058058243557e29ec3f95b566fb4292c6e7dc0d56ae1c475cb3f6d6f3535307b51589cfad1288287ae4358cfb4d8dfa2415f044a4a87041b9e70d44b6f1bc0040e1f52b8f69d75b50c75daf925ba9b47c9641f7a37453d1aa83fa42dd8b37a4fc33c4305ac9e054f64f9a97cc943a5428df4d80e3903b5997112a4bc79"},
     {"S", "4463B9445B3ECD775A7271952F64B9CF51D2A09BD8E5E89AA52D10BE86E92966F8F198E9FB4BDBE5145800984AF7CABE08C06F8CD82376DF3E4B22DAABAB89DFA1DE48AD0D3A542399D9713BBB545D28D97A8EE4785140B42D65FC15C15CF16B72985C9A81780292BEC5F3A638F4E9BF2AC0D25C11AD0C8DBD3366DDAD46F95E6080A9DB2C47EE0FED02FBAA97B8E0932BCB19456ADE37FF5049CA7BE0FE68379960FB3C62ABDEA99CF31853A63AE329AB2C99741D225F9E3F626F4B2196EE05EDB429ECC6830840E1D9CAD9683FEF7C4CFADD401CF66CB45D6CB6762082061E2D1C8B8B31ECB7F1793874E2757A156867A10D7D922F1525F541D622359A6F74DB3BDA69B8CD15629C6BB539E23F08662949FA5FB64242C45B88198282735EE80EB89E1F2DBFFBCF468FF523E3DDC7C5CD209FEC4B6E35314A9D4A364668C4DE32C837893C966E64E733BE83C1DCD5640B4673A8A453428DC5ACA7B251F19AA8C1FA19AF7E1AC9ECD7CD31F6A269CEF1BE16CCED14D6B1ECEBE0006AD43426779018E52E6578EA81FFF5F45BE16BBE83A65D783931B8CDE582453EFEF0D77166D5165D022DB89C74C055922921FF9B2D11E4ADAA8C412620FD693C90A12730FFF35C6A04ACA78D357B1F6304E613187B61AF1DF806E18DAF61EBBA3DD8FE8252C62BBF50F4C7E463E12428B24EE35609477B4D2DA28194949B6BBF5762278B4C"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
    {// mod = 4096 SHAAlg = SHA512 paddingmade = PKCS#1 RSASSA-PSS Case 48
     {"n", "cb30640fc743d0d6b4b121c4a8c77e2161a77670e86c85b4b564adeb79d43401e3fb70e87ea63be5a62eeff8e31dc94872b26c01c547d8a7f5e2403cdbb55737c4d2b968c7d1278f440236127a2e9648ab9870acff4baa4ae031a2cefbb2c8c520d4a6f9a226ee76d78e3c725c9dd5cf151de36980f51ed469c7d84b5465d2186ccceb928eb5715208a31d65befb4f9357a673ede8e8925f2180ff1ddb0c320f717d9327d103a98761b3e13b0f159257c67027c1825be6d227d341258090db492a4b8ff0c557292f018c8b769de22cf2eafb8056f596dc57d8a08a44ba75113b3b1532ae991ed86a2302e49951e0a37b3915bd47eaefb0b98b83fe38948bc65013fa79a12133987bfccbd88c721aa6e4baa4d9c883655289a2a568faf824529115d523b251049b8847ae2a85766d13657227c79d24b1396a7be6c79b6b7921d7f437fc26f41aaa78824dfb45f142e1b8402dd7b41e626dc6efc182f8a7c7fccb13491c2b58d1f1b3ef2fb0cf97a4bb22581975b67a4b1ce8a08492ebb7ed0c60f42b3f92c1fc7fc057f2438108488d96634317d305ad9335c20d05462de036777d4fbab89aaebb86b1419710670c7a602495dabcd553d01b57591e4b9b0b96aa73b89a74f81c3fb4ee4190d471d743ca54fc53db53f03911c0af33e38c24446223faf4e5a10459af874bf32b0e467c64373dfea1ff523d26271365550d9873d9"},
     {"e", "1001"},
     {"msg", "1e0ffcab2f1d52641097cf6cb3b696eeed10b450d56ca5ad6dd5198684edf8b4da84a3a186697db89580aa1af41516939070b9ccbbaa1ac2d2bf12761ce3d3e7f61a283d2d03ff47acf42427574c4f4c360561a1d689eb04ecc7f0fa3c85eca1b9f814e6ee92e0f79c1bc7fca503490228f73337eeb21f5d05163a79aa7b4acb"},
     {"S", "68E9D73EB337CDDD3E0F5106DA7A667ABF4276C9AB1AA251741E4D1720D2482ECC63B15CBC8CEF5E09ED4915804575F35AA6A5EE8CC098AF4AD40FB305E580480DFB42C125700764FAD3E3BF44D533302FC53CF54FBB3FF67C59EDEF52153E6BF17B9C76EEE01CE2A7F05D900EE8FD70FBD3BE0D2715A6001197A260970620C48A68B37E60117DE29D2F4FA65BD5B7A5E56202AB90C77C8710E263DB49F032C63DE858C30D8E1FB95160D3AB79CD4A83AC18574099EFDA76CB805138FCD2223339D432E4910C9E0316B2D32274ED633F300497AE99DE05B51A7077F22AACBC4CB59FBA5F37D920F1DBEDC61EB6F59E97104ECE4BEBE920F6FD43326BAB509EC4B060D9EFCDAE0F6E7805AFF2A65A8008C8E90E8C4949889353754329F2B32892134F41B01D24F57BA75E26E91AF0BD64B294E169470883F066B89BEAC2D466CB77046A73D769379A2F64790799EF44161F429636B5664BEAB168A63670A9F640C6F8350C137165885F5A744ADF468326E0ED0B03D3D0BB64761A984EA9A72A15CC1DB8AC15C72BCE8E58DFC95E570012ECD6BBAE298F877C33566C1C2395C82C4483EA2F18753C09C64D8C580DBE6F49C1924B72A2509BB7E15DCF24AD9830477FF4E7D7F03915835843F53DDEDBF2AF05422A253EDCADFC9EAA28F164BB2F8AABC649B87B9798CE42E1C451E761C52A1632BCFAB1AC7E39CCC6D71D6F9FFBAE"},
     {"paddingmode", "2"}, /* 1 means paddingmode PKCS#1 Ver 1.5, 2 means paddingmode PKCS#1 RSASSA-PSS */
     {"digestmode", "512"}},
};

extern uint32_t getPaddingMode(ehsm_padding_mode_t padding_mode);

static void RSA_create_key(RSA *key, const char *n, const char *e, const char *d)

{
    BIGNUM *modulus = BN_new();
    BIGNUM *publicExponent = BN_new();
    BIGNUM *privateExponent = BN_new();

    BN_hex2bn(&modulus, n);
    BN_hex2bn(&publicExponent, e);
    BN_hex2bn(&privateExponent, d);

    RSA_set0_key(key,
                 modulus,
                 publicExponent,
                 privateExponent);
}

static bool rsa_decryption_with_pkcs_oaep(map<string, string> test_vector)
{
    GET_PARAMETER(n);
    GET_PARAMETER(e);
    GET_PARAMETER(d);
    GET_PARAMETER(p);
    GET_PARAMETER(q);
    GET_PARAMETER(dmp1);
    GET_PARAMETER(dmq1);
    GET_PARAMETER(iqmp);

    GET_PARAMETER(plaintext);
    GET_PARAMETER(ciphertext);

    RSA *key = RSA_new();

    RSA_set0_key(key,
                 BN_bin2bn(&*n, VECTOR_LENGTH("n"), NULL),
                 BN_bin2bn(&*e, VECTOR_LENGTH("e"), NULL),
                 BN_bin2bn(&*d, VECTOR_LENGTH("d"), NULL));
    RSA_set0_factors(key,
                     BN_bin2bn(&*p, VECTOR_LENGTH("p"), NULL),
                     BN_bin2bn(&*q, VECTOR_LENGTH("q"), NULL));
    RSA_set0_crt_params(key,
                        BN_bin2bn(&*dmp1, VECTOR_LENGTH("dmp1"), NULL),
                        BN_bin2bn(&*dmq1, VECTOR_LENGTH("dmq1"), NULL),
                        BN_bin2bn(&*iqmp, VECTOR_LENGTH("iqmp"), NULL));

    int rsa_size = RSA_size(key);
    if (rsa_size <= 42)
    {
        RSA_free(key);
        return false;
    }
    uint32_t plaintext_len =
        std::max(VECTOR_LENGTH("plaintext"), (uint32_t)rsa_size - 42);
    uint8_t _plaintext[plaintext_len];
    memset(_plaintext, 0, plaintext_len);

    RSA_private_decrypt(rsa_size, &*ciphertext, _plaintext, key, 4);

    RSA_free(key);

    return TEST_COMPARE(plaintext);
}

static bool rsa_sign_verify_with_PKCS1(map<string, string> test_vector)
{
    GET_PARAMETER(n);
    GET_PARAMETER(e);
    GET_PARAMETER(d);
    GET_PARAMETER(msg);
    GET_PARAMETER(S);

    bool result = false;
    int digestmode = atoi((test_vector["digestmode"]).c_str());
    int paddingmode = atoi((test_vector["paddingmode"]).c_str());

    RSA *key = RSA_new();

    // Generate rsa key pair by n, e, d
    RSA_create_key(key,
                   test_vector["n"].c_str(),
                   test_vector["e"].c_str(),
                   test_vector["d"].c_str());

    uint8_t _S[RSA_size(key)] = {0};

    (void)rsa_sign(key,
                   getDigestMode(digestmode),
                   getPaddingMode((ehsm_padding_mode_t)paddingmode),
                   EH_RAW,
                   &*msg,
                   VECTOR_LENGTH("msg"),
                   _S,
                   (uint32_t)RSA_size(key));

    // Compare the result after RSA_sign with S in the test vector
    if (TEST_COMPARE(S) == false)
    {
        log_e("Signature error\n");
        return false;
    }

    // Verify the generated signature
    (void)rsa_verify(key,
                     getDigestMode(digestmode),
                     getPaddingMode((ehsm_padding_mode_t)paddingmode),
                     EH_RAW,
                     &*msg,
                     VECTOR_LENGTH("msg"),
                     &*S,
                     VECTOR_LENGTH("S"),
                     &result);

    RSA_free(key);

    if (result == false)
    {
        log_e("Signature error\n");
        return false;
    }

    return true;
}

static bool rsa_sign_verify_with_PKCS1_PSS(map<string, string> test_vector)
{
    /* TODO : rsa PSS padding mode sign self test was not done */
    GET_PARAMETER(n);
    GET_PARAMETER(e);
    GET_PARAMETER(msg);
    GET_PARAMETER(S);
    bool result = false;
    int saltlen = 0;
    int digestmode = atoi((test_vector["digestmode"]).c_str());
    int paddingmode = atoi((test_vector["paddingmode"]).c_str());

    RSA *key = RSA_new();

    BIGNUM *modulus = BN_new();
    BIGNUM *publicExponent = BN_new();

    BN_hex2bn(&modulus, test_vector["n"].c_str());
    BN_hex2bn(&publicExponent, test_vector["e"].c_str());

    // Generate rsa key pair by n, e
    RSA_set0_key(key,
                 modulus,
                 publicExponent,
                 NULL);

    // Verify the generated signature
    (void)rsa_verify(key,
                     getDigestMode(digestmode),
                     getPaddingMode((ehsm_padding_mode_t)paddingmode),
                     EH_RAW,
                     &*msg,
                     VECTOR_LENGTH("msg"),
                     &*S,
                     VECTOR_LENGTH("S"),
                     &result,
                     saltlen);

    RSA_free(key);

    if (result == false)
    {
        log_e("Signature error\n");
        return false;
    }

    return true;
}

/***
 * setup1. load keypair
 * setup2. decrypt msg
 * setup3. compare result
 */
bool rsa_crypto_test()
{
    log_i("%s start", __func__);
    int index = 1;

    for (auto &test_vector : rsa_crypto_with_pkcs_oaep_test_vectors)
    {
        if (!rsa_decryption_with_pkcs_oaep(test_vector))
        {
            log_e("self test failed");
            for (auto &item : test_vector)
                log_e("[%s]: [%s]", item.first.c_str(), item.second.c_str());
            continue;
        }

        index++;
    }

    if (index != rsa_crypto_with_pkcs_oaep_test_vectors.size() + 1)
    {
        return false;
    }
    log_i("%s end", __func__);
    return true;
}

/***
 * setup1. load key pair
 * setup2. verify msg
 * setup3. compare result
 */
bool rsa_sign_verify_test()
{
    log_i("%s start", __func__);
    int index = 1;
    for (auto &test_vector : rsa_sign_verify_with_PKCS1_test_vectors)
    {
        if (!rsa_sign_verify_with_PKCS1(test_vector))
        {
            log_e("self test failed");
            for (auto &item : test_vector)
                log_e("[%s]: [%s]", item.first.c_str(), item.second.c_str());
            continue;
        }

        index++;
    }

    for (auto &test_vector : rsa_sign_verify_with_PKCS1_PSS_test_vectors)
    {
        if (!rsa_sign_verify_with_PKCS1_PSS(test_vector))
        {
            log_e("rsa self test failed");
            for (auto &item : test_vector)
                log_e("[%s]: [%s]", item.first.c_str(), item.second.c_str());
            continue;
        }

        index++;
    }

    if (index != (rsa_sign_verify_with_PKCS1_test_vectors.size() +
                  rsa_sign_verify_with_PKCS1_PSS_test_vectors.size() + 1))
    {
        return false;
    }
    log_i("%s end", __func__);
    return true;
}